{"ok":true,"data":{"schema":"https://schema.org/WebAPI","service":"Emoji Score","baseUrl":"https://emoji.platphormnews.com","documentation":"https://emoji.platphormnews.com/api","openapi":"https://emoji.platphormnews.com/openapi.yaml","auth":{"publicSafeAccess":true,"protectedActionsRequire":"PLATPHORM_API_KEY","acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key"]},"endpoints":[{"method":"GET","path":"/api/health","public":true,"description":"Public health summary."},{"method":"GET","path":"/api/v1/health","public":true,"description":"Standard health summary."},{"method":"GET","path":"/api/v1/emoji","public":true,"description":"List database-backed canonical emoji records."},{"method":"GET","path":"/api/v1/emoji/{slug}","public":true,"description":"Get one canonical emoji record by slug."},{"method":"GET","path":"/api/v1/emoji/by-codepoint/{codepoint}","public":true,"description":"Get one canonical emoji record by Unicode codepoint sequence."},{"method":"GET","path":"/api/v1/search","public":true,"description":"Search canonical emoji records by name, keyword, group, subgroup, emoji, or codepoint."},{"method":"GET","path":"/api/v1/categories","public":true,"description":"List database-backed categories."},{"method":"GET","path":"/api/v1/groups","public":true,"description":"List database-backed groups."},{"method":"GET","path":"/api/v1/subgroups","public":true,"description":"List database-backed subgroups."},{"method":"GET","path":"/api/v1/keywords","public":true,"description":"List database-backed keyword index records."},{"method":"GET","path":"/api/v1/emojis","public":true,"description":"List Unicode emoji."},{"method":"GET","path":"/api/v1/emojis/search","public":true,"description":"Search Unicode emoji."},{"method":"GET","path":"/api/v1/emojis/categories","public":true,"description":"List emoji categories."},{"method":"GET","path":"/api/v1/emojis/{codepoint}","public":true,"description":"Get one emoji by code point."},{"method":"GET","path":"/api/v1/timeline","public":true,"description":"Database-backed Unicode emoji timeline."},{"method":"GET","path":"/api/v1/new","public":true,"description":"Recently added emoji records from the canonical data layer."},{"method":"POST","path":"/api/v1/score","public":true,"description":"Score an existing emoji or proposal payload."},{"method":"GET","path":"/api/v1/score/{emojiSlug}","public":true,"description":"Reserved public score lookup; use POST /api/v1/score for current deterministic scoring."},{"method":"POST","path":"/api/v1/battle","public":true,"description":"Compare two emoji scores head-to-head."},{"method":"POST","path":"/api/v1/sentiment/score","public":true,"description":"Score sentiment and symbolic meaning."},{"method":"POST","path":"/api/v1/combinations/score","public":true,"description":"Score emoji combinations and phrase+emoji expressions."},{"method":"POST","path":"/api/v1/proposals/score","public":true,"description":"Score a Unicode-style proposal."},{"method":"GET","path":"/api/v1/proposals","public":true,"description":"List ephemeral public-safe proposal results in this runtime."},{"method":"POST","path":"/api/v1/proposals","public":false,"description":"Protected server persistence hook backed by the configured database."},{"method":"GET","path":"/api/v1/proposals/{id}","public":true,"description":"Get a public-safe proposal score or stored proposal metadata when available."},{"method":"POST","path":"/api/v1/proposals/{id}/score","public":true,"description":"Score a stored proposal by id or slug."},{"method":"POST","path":"/api/v1/proposals/{id}/export","public":true,"description":"Export proposal markdown when result is available."},{"method":"GET","path":"/api/v1/proposals/{id}/download","public":true,"description":"Download proposal markdown when result is available."},{"method":"GET","path":"/api/v1/proposal-criteria","public":true,"description":"List versioned proposal criteria from the scoring registry."},{"method":"GET","path":"/api/v1/score-dimensions","public":true,"description":"List versioned score dimensions from the scoring registry."},{"method":"POST","path":"/api/v1/model/proposal-draft","public":false,"description":"Protected model-ready proposal writing adapter."},{"method":"POST","path":"/api/v1/model/improve-proposal","public":false,"description":"Protected model-ready improvement adapter."},{"method":"POST","path":"/api/v1/model/explain-sentiment","public":false,"description":"Protected model-ready sentiment explanation adapter."},{"method":"POST","path":"/api/v1/model/image-prompt","public":false,"description":"Protected model-ready image prompt adapter."},{"method":"POST","path":"/api/v1/model/accessibility-review","public":false,"description":"Protected model-ready accessibility review adapter."},{"method":"GET","path":"/api/v1/unicode/snapshot","public":true,"description":"Unicode data snapshot metadata."},{"method":"POST","path":"/api/v1/unicode/refresh","public":false,"description":"Protected refresh hook."},{"method":"POST","path":"/api/v1/import/unicode","public":false,"description":"Protected Unicode import hook."},{"method":"POST","path":"/api/v1/import/emoji","public":false,"description":"Protected emoji import hook."},{"method":"POST","path":"/api/v1/data/rebuild-search","public":false,"description":"Protected search index rebuild hook."},{"method":"POST","path":"/api/v1/data/recalculate-scores","public":false,"description":"Protected score recalculation hook."},{"method":"GET","path":"/api/docs","public":true,"description":"Machine-readable API docs."},{"method":"GET","path":"/openapi.yaml","public":true,"description":"OpenAPI 3.1 specification."},{"method":"GET","path":"/openapi.json","public":true,"description":"OpenAPI 3.1 specification as JSON."},{"method":"GET","path":"/api/mcp","public":true,"description":"MCP metadata and usage."},{"method":"POST","path":"/api/mcp","public":true,"description":"MCP JSON-RPC 2.0 endpoint."},{"method":"GET","path":"/data/emoji","public":true,"description":"Read public-safe canonical emoji records from the Emoji Score data layer."},{"method":"GET","path":"/data/unicode","public":true,"description":"Read public-safe canonical unicode records from the Emoji Score data layer."},{"method":"GET","path":"/data/categories","public":true,"description":"Read public-safe canonical categories records from the Emoji Score data layer."},{"method":"GET","path":"/data/groups","public":true,"description":"Read public-safe canonical groups records from the Emoji Score data layer."},{"method":"GET","path":"/data/subgroups","public":true,"description":"Read public-safe canonical subgroups records from the Emoji Score data layer."},{"method":"GET","path":"/data/keywords","public":true,"description":"Read public-safe canonical keywords records from the Emoji Score data layer."},{"method":"GET","path":"/data/aliases","public":true,"description":"Read public-safe canonical aliases records from the Emoji Score data layer."},{"method":"GET","path":"/data/timeline","public":true,"description":"Read public-safe canonical timeline records from the Emoji Score data layer."},{"method":"GET","path":"/data/proposals","public":true,"description":"Read public-safe canonical proposals records from the Emoji Score data layer."},{"method":"GET","path":"/data/scoring","public":true,"description":"Read public-safe canonical scoring records from the Emoji Score data layer."},{"method":"GET","path":"/data/sentiment","public":true,"description":"Read public-safe canonical sentiment records from the Emoji Score data layer."},{"method":"GET","path":"/data/images","public":true,"description":"Read public-safe canonical images records from the Emoji Score data layer."},{"method":"GET","path":"/data/sources","public":true,"description":"Read public-safe canonical sources records from the Emoji Score data layer."},{"method":"GET","path":"/data/search","public":true,"description":"Read public-safe canonical search records from the Emoji Score data layer."},{"method":"GET","path":"/data/imports","public":true,"description":"Read public-safe canonical imports records from the Emoji Score data layer."},{"method":"GET","path":"/data/discovery","public":true,"description":"Read public-safe canonical discovery records from the Emoji Score data layer."},{"method":"GET","path":"/data/fixtures","public":true,"description":"Read public-safe canonical fixtures records from the Emoji Score data layer."},{"method":"GET","path":"/data/snapshots","public":true,"description":"Read public-safe canonical snapshots records from the Emoji Score data layer."}],"mcp":{"endpoint":"/api/mcp","protocol":"JSON-RPC 2.0","methods":["initialize","ping","tools/list","tools/call","resources/list","resources/read","prompts/list","prompts/get"],"tools":[{"name":"list_emoji","description":"List canonical database-backed emoji records.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"}}}},{"name":"list_emojis","description":"List Unicode emoji from Emoji Score's bundled Unicode data snapshot.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"}}}},{"name":"search_emoji","description":"Search canonical emoji records by name, keyword, group, subgroup, emoji, or codepoint.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string"},"limit":{"type":"integer"}}}},{"name":"search_emojis","description":"Search emoji by name, keyword, group, code point, or emoji character.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string"},"limit":{"type":"integer"}}}},{"name":"get_emoji","description":"Get one emoji by character or Unicode code point.","inputSchema":{"type":"object","required":["value"],"properties":{"value":{"type":"string"}}}},{"name":"score_emoji","description":"Deterministically score an existing emoji for recognition, versatility, category fit, and rendering simplicity.","inputSchema":{"type":"object","required":["emoji"],"properties":{"emoji":{"type":"string"}}}},{"name":"compare_emoji","description":"Compare two emoji scores head-to-head.","inputSchema":{"type":"object","required":["emojis"],"properties":{"emojis":{"type":"array","items":{"type":"string"}}}}},{"name":"score_sentiment","description":"Score text and emoji for sentiment polarity, valence, intensity, ambiguity, cultural risk, accessibility, and audience fit.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"emoji":{"type":"string"},"audience":{"type":"string"}}}},{"name":"score_emoji_combination","description":"Score an emoji combination for clarity, sentiment alignment, visual distinctiveness, ambiguity, and accessibility.","inputSchema":{"type":"object","required":["emojis"],"properties":{"emojis":{"type":"array","items":{"type":"string"}},"phrase":{"type":"string"},"audience":{"type":"string"}}}},{"name":"score_phrase_with_emoji","description":"Score a short phrase plus emoji as one symbolic expression.","inputSchema":{"type":"object","required":["phrase"],"properties":{"phrase":{"type":"string"},"emoji":{"type":"string"},"audience":{"type":"string"}}}},{"name":"score_proposal","description":"Score a Unicode-style emoji proposal using seven core factors plus sentiment, ambiguity, accessibility, audience, and platform-fit dimensions.","inputSchema":{"type":"object","required":["proposal"],"properties":{"proposal":{"type":"object"}}}},{"name":"create_proposal_draft","description":"Create a deterministic local/ephemeral proposal draft object without server persistence.","inputSchema":{"type":"object","required":["concept"],"properties":{"concept":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}}}}},{"name":"update_proposal_draft","description":"Return an updated proposal draft payload. Server persistence is unavailable unless a protected backend is configured.","inputSchema":{"type":"object","required":["draft"],"properties":{"draft":{"type":"object"}}}},{"name":"export_proposal","description":"Export a proposal score or draft as a Unicode-style Markdown document.","inputSchema":{"type":"object","required":["proposal"],"properties":{"proposal":{"type":"object"}}}},{"name":"list_scoring_factors","description":"List core proposal factors, weights, and tiers.","inputSchema":{"type":"object","properties":{}}},{"name":"explain_score","description":"Explain deterministic score components for an emoji or proposal.","inputSchema":{"type":"object","properties":{"emoji":{"type":"string"},"proposal":{"type":"object"}}}},{"name":"generate_improvement_recommendations","description":"Return deterministic proposal improvement recommendations; model assistance is marked unavailable when no provider is configured.","inputSchema":{"type":"object","required":["proposal"],"properties":{"proposal":{"type":"object"}}}},{"name":"generate_proposal_text","description":"Protected/model-ready proposal-writing adapter. Returns honest degraded output unless a server model runtime is configured.","inputSchema":{"type":"object","required":["proposal"],"properties":{"proposal":{"type":"object"}}}},{"name":"generate_image_prompt","description":"Generate deterministic image/proposal prompt scaffolding; does not claim image generation.","inputSchema":{"type":"object","required":["proposal"],"properties":{"proposal":{"type":"object"}}}},{"name":"generate_accessibility_review","description":"Return deterministic accessibility and inclusivity notes or model-degraded status.","inputSchema":{"type":"object","required":["proposal"],"properties":{"proposal":{"type":"object"}}}},{"name":"get_unicode_timeline","description":"Return the Unicode emoji timeline grouped by release year.","inputSchema":{"type":"object","properties":{}}},{"name":"get_timeline","description":"Return database-backed Unicode emoji timeline records.","inputSchema":{"type":"object","properties":{}}},{"name":"list_new_emoji","description":"Return recent emoji additions from the canonical data layer.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer"}}}},{"name":"list_categories","description":"List emoji groups/categories with counts and samples.","inputSchema":{"type":"object","properties":{}}},{"name":"list_groups","description":"List canonical group records.","inputSchema":{"type":"object","properties":{}}},{"name":"list_subgroups","description":"List canonical subgroup records.","inputSchema":{"type":"object","properties":{}}},{"name":"list_keywords","description":"List canonical keyword records.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer"}}}},{"name":"get_score_dimensions","description":"List versioned score dimensions and weights.","inputSchema":{"type":"object","properties":{}}},{"name":"get_proposal_criteria","description":"List versioned proposal scoring criteria.","inputSchema":{"type":"object","properties":{}}},{"name":"get_data_status","description":"Return canonical /data/* storage and seed status.","inputSchema":{"type":"object","properties":{}}},{"name":"get_database_status","description":"Return database configuration and writable/degraded status.","inputSchema":{"type":"object","properties":{}}},{"name":"get_import_status","description":"Return public-safe import run summaries.","inputSchema":{"type":"object","properties":{}}},{"name":"get_agent_policy","description":"Return public agent policy summary.","inputSchema":{"type":"object","properties":{}}},{"name":"list_agent_platforms","description":"List agent platform policy entries.","inputSchema":{"type":"object","properties":{}}},{"name":"get_agent_platform","description":"Get one agent platform policy entry by id/name.","inputSchema":{"type":"object","properties":{"id":{"type":"string"}}}},{"name":"evaluate_agent_access","description":"Evaluate public/protected access for an agent path/action.","inputSchema":{"type":"object","properties":{"path":{"type":"string"},"action":{"type":"string"}}}},{"name":"get_robots_policy","description":"Return robots and crawling policy summary.","inputSchema":{"type":"object","properties":{}}},{"name":"get_ai_policy","description":"Return AI/model/crawler policy summary.","inputSchema":{"type":"object","properties":{}}},{"name":"get_trust_policy","description":"Return Emoji Score trust policy.","inputSchema":{"type":"object","properties":{}}},{"name":"get_discovery_manifest","description":"Return agent discovery manifest.","inputSchema":{"type":"object","properties":{}}},{"name":"get_public_access_summary","description":"Return public-safe and protected boundary summary.","inputSchema":{"type":"object","properties":{}}},{"name":"get_health","description":"Return public-safe Emoji Score health and model/discovery status.","inputSchema":{"type":"object","properties":{}}},{"name":"get_info","description":"Return Emoji Score service identity, dataset, integrations, and public/protected boundary.","inputSchema":{"type":"object","properties":{}}},{"name":"get_route_compliance","description":"Return supported/degraded route-standard inventory for Emoji Score.","inputSchema":{"type":"object","properties":{}}},{"name":"get_discovery_compliance","description":"Return discovery file inventory and public access policy.","inputSchema":{"type":"object","properties":{}}},{"name":"create_docs_report","description":"Protected cross-site docs report generation hook. Returns auth-required/degraded unless PLATPHORM_API_KEY and Docs integration are configured.","inputSchema":{"type":"object","properties":{"format":{"type":"string"}}}},{"name":"create_sheet_report","description":"Protected cross-site Sheets report generation hook. Returns auth-required/degraded unless PLATPHORM_API_KEY and Sheets integration are configured.","inputSchema":{"type":"object","properties":{"format":{"type":"string"}}}},{"name":"create_deck_summary","description":"Protected cross-site Decks summary generation hook. Returns auth-required/degraded unless PLATPHORM_API_KEY and Decks integration are configured.","inputSchema":{"type":"object","properties":{"format":{"type":"string"}}}},{"name":"import_unicode_data","description":"Protected Unicode import hook. Requires PLATPHORM_API_KEY.","inputSchema":{"type":"object","properties":{}}},{"name":"import_emoji_data","description":"Protected emoji import hook. Requires PLATPHORM_API_KEY.","inputSchema":{"type":"object","properties":{}}},{"name":"rebuild_search_index","description":"Protected search index rebuild hook. Requires PLATPHORM_API_KEY.","inputSchema":{"type":"object","properties":{}}},{"name":"recalculate_scores","description":"Protected score recalculation hook. Requires PLATPHORM_API_KEY.","inputSchema":{"type":"object","properties":{}}},{"name":"publish_proposal","description":"Protected proposal publishing hook. Requires PLATPHORM_API_KEY.","inputSchema":{"type":"object","properties":{"proposalId":{"type":"string"}}}},{"name":"update_agent_policy","description":"Protected agent policy update hook. Requires PLATPHORM_API_KEY.","inputSchema":{"type":"object","properties":{}}},{"name":"refresh_agent_platform_registry","description":"Protected agent-platform registry refresh hook. Requires PLATPHORM_API_KEY.","inputSchema":{"type":"object","properties":{}}}],"resources":[{"uri":"emoji://emojis","name":"Emoji Dataset","description":"Unicode emoji data snapshot.","mimeType":"application/json"},{"uri":"emoji://emoji","name":"Emoji Dataset","description":"Canonical emoji data records.","mimeType":"application/json"},{"uri":"emoji://emoji/{codepoint}","name":"Emoji Record","description":"One Unicode emoji record by code point.","mimeType":"application/json"},{"uri":"emoji://categories","name":"Emoji Categories","description":"Emoji group/category counts.","mimeType":"application/json"},{"uri":"emoji://timeline","name":"Unicode Timeline","description":"Emoji additions by Unicode Emoji version year.","mimeType":"application/json"},{"uri":"emoji://new","name":"New Emoji","description":"Recent emoji additions.","mimeType":"application/json"},{"uri":"emoji://score-dimensions","name":"Score Dimensions","description":"Versioned score dimensions.","mimeType":"application/json"},{"uri":"emoji://proposal-criteria","name":"Proposal Criteria","description":"Proposal scoring criteria.","mimeType":"application/json"},{"uri":"emoji://data-status","name":"Data Status","description":"Canonical data status.","mimeType":"application/json"},{"uri":"emoji://database-status","name":"Database Status","description":"Database status.","mimeType":"application/json"},{"uri":"emoji://scoring-factors","name":"Scoring Factors","description":"Seven-factor proposal scoring model.","mimeType":"application/json"},{"uri":"emoji://proposal/{id}","name":"Proposal Result","description":"Ephemeral proposal result if available in current runtime.","mimeType":"application/json"},{"uri":"emoji://examples","name":"Emoji Score Examples","description":"Public-safe scoring examples.","mimeType":"application/json"},{"uri":"emoji://sentiment/examples","name":"Sentiment Examples","description":"Public-safe sentiment scoring examples.","mimeType":"application/json"},{"uri":"emoji://openapi","name":"OpenAPI","description":"Emoji Score OpenAPI metadata.","mimeType":"application/json"},{"uri":"emoji://llms","name":"LLMS Discovery","description":"LLMS discovery summary.","mimeType":"text/plain"},{"uri":"emoji://trust-policy","name":"Trust Policy","description":"Public/protected boundary and trust policy.","mimeType":"application/json"},{"uri":"agent-policy://summary","name":"Agent Policy Summary","description":"Agent policy summary.","mimeType":"application/json"},{"uri":"agent-policy://platforms","name":"Agent Platforms","description":"Agent platform policy records.","mimeType":"application/json"},{"uri":"agent-policy://robots","name":"Robots Policy","description":"Robots policy.","mimeType":"application/json"},{"uri":"agent-policy://ai-policy","name":"AI Policy","description":"AI policy.","mimeType":"application/json"},{"uri":"agent-policy://trust-policy","name":"Trust Policy","description":"Trust policy.","mimeType":"application/json"},{"uri":"agent-policy://public-access","name":"Public Access","description":"Public access summary.","mimeType":"application/json"},{"uri":"agent-policy://protected-access","name":"Protected Access","description":"Protected access summary.","mimeType":"application/json"}],"prompts":[{"name":"score_emoji_idea","description":"Score an emoji idea against Unicode-style proposal criteria.","arguments":[{"name":"idea","description":"Emoji idea","required":true}]},{"name":"score_symbolic_expression","description":"Score phrase plus emoji for sentiment and symbolic meaning.","arguments":[{"name":"expression","description":"Phrase and emoji","required":true}]},{"name":"improve_emoji_proposal","description":"Suggest improvements to a Unicode-style emoji proposal.","arguments":[{"name":"proposal","description":"Proposal text","required":true}]},{"name":"create_unicode_style_proposal","description":"Draft a Unicode-style proposal outline from a concept.","arguments":[{"name":"concept","description":"Emoji concept","required":true}]},{"name":"explain_emoji_score","description":"Explain an existing emoji score.","arguments":[{"name":"emoji","description":"Emoji","required":true}]},{"name":"explain_sentiment_score","description":"Explain a sentiment score.","arguments":[{"name":"expression","description":"Expression","required":true}]},{"name":"compare_emoji_ideas","description":"Compare several emoji ideas.","arguments":[{"name":"ideas","description":"Idea list","required":true}]},{"name":"generate_proposal_evidence_plan","description":"Generate an evidence-gathering plan for an emoji proposal.","arguments":[{"name":"proposal","description":"Proposal concept","required":true}]},{"name":"generate_image_prompt_for_emoji","description":"Generate a small-size emoji illustration prompt.","arguments":[{"name":"concept","description":"Emoji concept","required":true}]},{"name":"summarize_unicode_timeline","description":"Summarize emoji timeline changes.","arguments":[]},{"name":"human_machine_emoji_handoff","description":"Create a handoff between a human proposal writer and an agent.","arguments":[{"name":"draft","description":"Current draft","required":true}]}]},"discovery":{"service":"emoji","version":"17.0","baseUrl":"https://emoji.platphormnews.com","purpose":"Canonical emoji scoring, sentiment/symbolic scoring, and Unicode-style proposal development workbench for PlatPhormNews.","endpoints":[{"method":"GET","path":"/api/health","public":true,"description":"Public health summary."},{"method":"GET","path":"/api/v1/health","public":true,"description":"Standard health summary."},{"method":"GET","path":"/api/v1/emoji","public":true,"description":"List database-backed canonical emoji records."},{"method":"GET","path":"/api/v1/emoji/{slug}","public":true,"description":"Get one canonical emoji record by slug."},{"method":"GET","path":"/api/v1/emoji/by-codepoint/{codepoint}","public":true,"description":"Get one canonical emoji record by Unicode codepoint sequence."},{"method":"GET","path":"/api/v1/search","public":true,"description":"Search canonical emoji records by name, keyword, group, subgroup, emoji, or codepoint."},{"method":"GET","path":"/api/v1/categories","public":true,"description":"List database-backed categories."},{"method":"GET","path":"/api/v1/groups","public":true,"description":"List database-backed groups."},{"method":"GET","path":"/api/v1/subgroups","public":true,"description":"List database-backed subgroups."},{"method":"GET","path":"/api/v1/keywords","public":true,"description":"List database-backed keyword index records."},{"method":"GET","path":"/api/v1/emojis","public":true,"description":"List Unicode emoji."},{"method":"GET","path":"/api/v1/emojis/search","public":true,"description":"Search Unicode emoji."},{"method":"GET","path":"/api/v1/emojis/categories","public":true,"description":"List emoji categories."},{"method":"GET","path":"/api/v1/emojis/{codepoint}","public":true,"description":"Get one emoji by code point."},{"method":"GET","path":"/api/v1/timeline","public":true,"description":"Database-backed Unicode emoji timeline."},{"method":"GET","path":"/api/v1/new","public":true,"description":"Recently added emoji records from the canonical data layer."},{"method":"POST","path":"/api/v1/score","public":true,"description":"Score an existing emoji or proposal payload."},{"method":"GET","path":"/api/v1/score/{emojiSlug}","public":true,"description":"Reserved public score lookup; use POST /api/v1/score for current deterministic scoring."},{"method":"POST","path":"/api/v1/battle","public":true,"description":"Compare two emoji scores head-to-head."},{"method":"POST","path":"/api/v1/sentiment/score","public":true,"description":"Score sentiment and symbolic meaning."},{"method":"POST","path":"/api/v1/combinations/score","public":true,"description":"Score emoji combinations and phrase+emoji expressions."},{"method":"POST","path":"/api/v1/proposals/score","public":true,"description":"Score a Unicode-style proposal."},{"method":"GET","path":"/api/v1/proposals","public":true,"description":"List ephemeral public-safe proposal results in this runtime."},{"method":"POST","path":"/api/v1/proposals","public":false,"description":"Protected server persistence hook backed by the configured database."},{"method":"GET","path":"/api/v1/proposals/{id}","public":true,"description":"Get a public-safe proposal score or stored proposal metadata when available."},{"method":"POST","path":"/api/v1/proposals/{id}/score","public":true,"description":"Score a stored proposal by id or slug."},{"method":"POST","path":"/api/v1/proposals/{id}/export","public":true,"description":"Export proposal markdown when result is available."},{"method":"GET","path":"/api/v1/proposals/{id}/download","public":true,"description":"Download proposal markdown when result is available."},{"method":"GET","path":"/api/v1/proposal-criteria","public":true,"description":"List versioned proposal criteria from the scoring registry."},{"method":"GET","path":"/api/v1/score-dimensions","public":true,"description":"List versioned score dimensions from the scoring registry."},{"method":"POST","path":"/api/v1/model/proposal-draft","public":false,"description":"Protected model-ready proposal writing adapter."},{"method":"POST","path":"/api/v1/model/improve-proposal","public":false,"description":"Protected model-ready improvement adapter."},{"method":"POST","path":"/api/v1/model/explain-sentiment","public":false,"description":"Protected model-ready sentiment explanation adapter."},{"method":"POST","path":"/api/v1/model/image-prompt","public":false,"description":"Protected model-ready image prompt adapter."},{"method":"POST","path":"/api/v1/model/accessibility-review","public":false,"description":"Protected model-ready accessibility review adapter."},{"method":"GET","path":"/api/v1/unicode/snapshot","public":true,"description":"Unicode data snapshot metadata."},{"method":"POST","path":"/api/v1/unicode/refresh","public":false,"description":"Protected refresh hook."},{"method":"POST","path":"/api/v1/import/unicode","public":false,"description":"Protected Unicode import hook."},{"method":"POST","path":"/api/v1/import/emoji","public":false,"description":"Protected emoji import hook."},{"method":"POST","path":"/api/v1/data/rebuild-search","public":false,"description":"Protected search index rebuild hook."},{"method":"POST","path":"/api/v1/data/recalculate-scores","public":false,"description":"Protected score recalculation hook."},{"method":"GET","path":"/api/docs","public":true,"description":"Machine-readable API docs."},{"method":"GET","path":"/openapi.yaml","public":true,"description":"OpenAPI 3.1 specification."},{"method":"GET","path":"/openapi.json","public":true,"description":"OpenAPI 3.1 specification as JSON."},{"method":"GET","path":"/api/mcp","public":true,"description":"MCP metadata and usage."},{"method":"POST","path":"/api/mcp","public":true,"description":"MCP JSON-RPC 2.0 endpoint."},{"method":"GET","path":"/data/emoji","public":true,"description":"Read public-safe canonical emoji records from the Emoji Score data layer."},{"method":"GET","path":"/data/unicode","public":true,"description":"Read public-safe canonical unicode records from the Emoji Score data layer."},{"method":"GET","path":"/data/categories","public":true,"description":"Read public-safe canonical categories records from the Emoji Score data layer."},{"method":"GET","path":"/data/groups","public":true,"description":"Read public-safe canonical groups records from the Emoji Score data layer."},{"method":"GET","path":"/data/subgroups","public":true,"description":"Read public-safe canonical subgroups records from the Emoji Score data layer."},{"method":"GET","path":"/data/keywords","public":true,"description":"Read public-safe canonical keywords records from the Emoji Score data layer."},{"method":"GET","path":"/data/aliases","public":true,"description":"Read public-safe canonical aliases records from the Emoji Score data layer."},{"method":"GET","path":"/data/timeline","public":true,"description":"Read public-safe canonical timeline records from the Emoji Score data layer."},{"method":"GET","path":"/data/proposals","public":true,"description":"Read public-safe canonical proposals records from the Emoji Score data layer."},{"method":"GET","path":"/data/scoring","public":true,"description":"Read public-safe canonical scoring records from the Emoji Score data layer."},{"method":"GET","path":"/data/sentiment","public":true,"description":"Read public-safe canonical sentiment records from the Emoji Score data layer."},{"method":"GET","path":"/data/images","public":true,"description":"Read public-safe canonical images records from the Emoji Score data layer."},{"method":"GET","path":"/data/sources","public":true,"description":"Read public-safe canonical sources records from the Emoji Score data layer."},{"method":"GET","path":"/data/search","public":true,"description":"Read public-safe canonical search records from the Emoji Score data layer."},{"method":"GET","path":"/data/imports","public":true,"description":"Read public-safe canonical imports records from the Emoji Score data layer."},{"method":"GET","path":"/data/discovery","public":true,"description":"Read public-safe canonical discovery records from the Emoji Score data layer."},{"method":"GET","path":"/data/fixtures","public":true,"description":"Read public-safe canonical fixtures records from the Emoji Score data layer."},{"method":"GET","path":"/data/snapshots","public":true,"description":"Read public-safe canonical snapshots records from the Emoji Score data layer."}],"auth":{"platformKey":"PLATPHORM_API_KEY","acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key"],"publicSafeAccess":true,"protectedActions":["server persistence","protected model generation","bulk scoring","reports","cron refresh","registry mutation","webhook subscription mutation"]},"publicAccess":["emoji lookup","emoji scoring","sentiment scoring","symbolic-expression scoring","emoji-combination scoring","proposal scoring","proposal export when safe","Unicode data browsing","API docs","MCP introspection"],"emojiCount":3944,"dataStatus":{"mode":"postgres","databaseConfigured":true,"writable":true,"reason":"Postgres adapter configured; route reads fall back to snapshots if tables are empty/unavailable.","schemaVersion":"emoji-data-v2.0.0","migration":"migrations/0001_emoji_data_records.sql","source":"postgres:emoji_data_records","domains":["emoji","unicode","categories","groups","subgroups","keywords","aliases","timeline","proposals","scoring","sentiment","images","sources","search","imports","discovery","fixtures","snapshots"],"emojiCount":3944,"scoringRegistry":{"ok":true,"totalWeight":100,"dimensionCount":7,"version":"emoji-score-v2.0.0"}},"dataDomains":["emoji","unicode","categories","groups","subgroups","keywords","aliases","timeline","proposals","scoring","sentiment","images","sources","search","imports","discovery","fixtures","snapshots"],"categories":["Smileys & Emotion","People & Body","Animals & Nature","Food & Drink","Travel & Places","Activities","Objects","Symbols","Flags"],"scoringFactors":[{"key":"demand","label":"Expected Usage (Demand)","shortLabel":"Demand","description":"Frequency and breadth of anticipated use across platforms. High search volume, petition signatures, social media requests, and evidence of existing workaround usage.","weight":0.2,"maxScore":100},{"key":"universality","label":"Cross-cultural Universality","shortLabel":"Universality","description":"Whether the concept is understood across cultures and languages. Measured by global recognition, language independence, and cultural neutrality.","weight":0.15,"maxScore":100},{"key":"semanticGap","label":"Semantic Gap","shortLabel":"Gap","description":"The degree to which the concept cannot be expressed by existing emoji or combinations. A high gap means no current emoji covers this meaning.","weight":0.2,"maxScore":100},{"key":"longevity","label":"Longevity & Stability","shortLabel":"Longevity","description":"Likelihood the emoji will remain relevant over time. Timeless concepts score high; fads and memes score low.","weight":0.1,"maxScore":100},{"key":"visualDistinctiveness","label":"Visual Distinctiveness","shortLabel":"Visual","description":"Can the concept be rendered as a distinct, recognizable glyph at small sizes (18x18px)? Uniqueness from existing emoji at a glance.","weight":0.15,"maxScore":100},{"key":"neutrality","label":"Inclusivity & Neutrality","shortLabel":"Neutrality","description":"Freedom from commercial branding, political/religious bias, and potential for offensive interpretations across cultures.","weight":0.1,"maxScore":100},{"key":"completeness","label":"Proposal Completeness","shortLabel":"Completeness","description":"Quality and thoroughness of the proposal documentation including images, naming, descriptions, and supporting evidence.","weight":0.1,"maxScore":100}],"sentimentCapabilities":["polarity","valence","intensity","ambiguity risk","cultural risk","accessibility","audience fit"],"proposalCapabilities":["seven-factor score","enhanced dimensions","recommendations","Markdown export","image prompt scaffold","proposal illustration prompt scaffold"],"modelScaffolding":{"configured":false,"provider":"unconfigured","model":"none","status":"unavailable","reason":"No server-side model provider is configured.","publicSafe":false,"protectedActionsRequire":"PLATPHORM_API_KEY","capabilities":["proposal writing assistance","proposal improvement suggestions","sentiment explanation","symbolic meaning explanation","emoji naming and keyword suggestions","image prompt generation","proposal illustration prompt generation","accessibility and inclusivity review"]},"exportCapabilities":["Markdown proposal download","JSON proposal score","copyable summary"],"tools":["list_emoji","list_emojis","search_emoji","search_emojis","get_emoji","score_emoji","compare_emoji","score_sentiment","score_emoji_combination","score_phrase_with_emoji","score_proposal","create_proposal_draft","update_proposal_draft","export_proposal","list_scoring_factors","explain_score","generate_improvement_recommendations","generate_proposal_text","generate_image_prompt","generate_accessibility_review","get_unicode_timeline","get_timeline","list_new_emoji","list_categories","list_groups","list_subgroups","list_keywords","get_score_dimensions","get_proposal_criteria","get_data_status","get_database_status","get_import_status","get_agent_policy","list_agent_platforms","get_agent_platform","evaluate_agent_access","get_robots_policy","get_ai_policy","get_trust_policy","get_discovery_manifest","get_public_access_summary","get_health","get_info","get_route_compliance","get_discovery_compliance","create_docs_report","create_sheet_report","create_deck_summary","import_unicode_data","import_emoji_data","rebuild_search_index","recalculate_scores","publish_proposal","update_agent_policy","refresh_agent_platform_registry"],"resources":["emoji://emojis","emoji://emoji","emoji://emoji/{codepoint}","emoji://categories","emoji://timeline","emoji://new","emoji://score-dimensions","emoji://proposal-criteria","emoji://data-status","emoji://database-status","emoji://scoring-factors","emoji://proposal/{id}","emoji://examples","emoji://sentiment/examples","emoji://openapi","emoji://llms","emoji://trust-policy","agent-policy://summary","agent-policy://platforms","agent-policy://robots","agent-policy://ai-policy","agent-policy://trust-policy","agent-policy://public-access","agent-policy://protected-access"],"prompts":["score_emoji_idea","score_symbolic_expression","improve_emoji_proposal","create_unicode_style_proposal","explain_emoji_score","explain_sentiment_score","compare_emoji_ideas","generate_proposal_evidence_plan","generate_image_prompt_for_emoji","summarize_unicode_timeline","human_machine_emoji_handoff"],"trustedDomains":{"trusted":["platphormnews.com","*.platphormnews.com"],"discoverySources":["https://platphormnews.com/api/network/graph","https://base.platphormnews.com/sitemap-index.xml"],"blocked":["localhost","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","169.254.0.0/16","metadata.google.internal","169.254.169.254"]},"routeStandard":{"score":100,"supported":["/api/health","/api/v1/health","/api/docs","/openapi.yaml","/openapi.json","/llms.txt","/llms-full.txt","/llms-index.json","/robots.txt","/sitemap.xml","/sitemap-main.xml","/rss.xml","/feed.xml","/manifest.webmanifest","/.well-known/mcp.json","/.well-known/agents.json","/.well-known/agent-policy.json","/.well-known/ai-policy.json","/.well-known/ai-plugin.json","/.well-known/security.txt","/.well-known/trust.json","/api/mcp","/data/emoji","/data/timeline","/data/scoring"],"degraded":[{"route":"/api/v1/model/*","status":"unavailable","reason":"No server-side model provider is configured."},{"route":"cross-site report generation","status":"auth_required","reason":"Protected integration actions require PLATPHORM_API_KEY and downstream service configuration."}]},"discoveryCompliance":{"score":100,"files":["/llms.txt","/llms-full.txt","/llms-index.json","/openapi.yaml","/openapi.json","/rss.xml","/feed.xml","/sitemap.xml","/sitemap-main.xml","/robots.txt","/.well-known/mcp.json","/.well-known/agents.json","/.well-known/agent-policy.json","/.well-known/ai-policy.json","/.well-known/security.txt","/.well-known/trust.json"],"publicSafe":true,"auth":"PLATPHORM_API_KEY for protected actions only"},"integrations":[{"id":"trace","url":"https://trace.platphormnews.com","status":"degraded","purpose":"Trace-linked Emoji Score operations and span inspection"},{"id":"mcp","url":"https://mcp.platphormnews.com","status":"configured","purpose":"Capability discovery and JSON-RPC tooling"},{"id":"docs","url":"https://docs.platphormnews.com","status":"degraded","purpose":"Protected docs report publishing"},{"id":"evals","url":"https://evals.platphormnews.com","status":"degraded","purpose":"Protected scoring/eval gates"},{"id":"browserops","url":"https://browserops.platphormnews.com","status":"degraded","purpose":"Protected UI journey checks"},{"id":"sandbox","url":"https://sandbox.platphormnews.com","status":"degraded","purpose":"Protected proposal replay and validation"},{"id":"sheets","url":"https://sheets.platphormnews.com","status":"degraded","purpose":"Protected structured report export"},{"id":"decks","url":"https://decks.platphormnews.com","status":"degraded","purpose":"Protected summary deck generation"},{"id":"claws","url":"https://claws.platphormnews.com","status":"degraded","purpose":"Protected remediation workflows"}],"trustPolicy":"https://emoji.platphormnews.com/.well-known/trust.json","updatedAt":"2026-05-25T05:46:06.830Z"}}}