Carregando...
Carregando...
Explorador de schema
Um catálogo pensado para designers do schema canônico de manifesto da EBU. Navegue pelos campos de nível superior, veja cada tipo de entrada do operador com uma simulação visual real e esqueça de vez o jargão do JSON Schema.
14
Campos do manifesto
6
Obrigatórios
5
Grupos
9
Tipos de entrada do operador
Tudo o que um manifesto OGraf pode conter — campos obrigatórios em rosa, opcionais em cinza. Clique em qualquer ramo abaixo para ir direto ao cartão detalhado.
obrigatório · opcional · clique em qualquer ramo para ir ao cartão completo abaixo
Tudo o que pode ficar no nível superior de um manifesto .ograf.json, agrupado nas cinco coisas que realmente importam para designers: quem é este grafismo, como ele se comporta, que dados ele pede ao operador, que botões customizados o operador pode apertar e do que ele precisa do renderizador.
Quem é este grafismo? Um nome, uma versão, um crédito.
Como ele roda? Páginas, modos, onde pode ir ao ar.
Quantas visualizações separadas o seu grafismo tem. -1 significa dinâmico (o grafismo decide em tempo de execução), 0 é uma vinheta que roda sozinha até o fim, 1 é um estado único que fica na tela até ser parado (uma lower third), 2+ é um grafismo de várias páginas que o operador avança clicando. O padrão é 1.
Exemplo: padrão 1 · mín. -1 · -1 = dinâmico
O que o operador preenche — como um formulário: nome, cargo, placar.
O mínimo que o renderizador precisa garantir — tamanho, transparência, áudio.
Uma lista de ambientes de renderização aceitáveis — pelo menos uma entrada precisa ser atendida. Cada entrada pode restringir resolução, taxa de quadros, acesso à internet e o motor de renderização + versão. As restrições usam min/max/exact/ideal para que o renderizador negocie a melhor combinação.
Dentro do campo schema — é o formulário que o controlador monta para o operador. Estes são os tipos de entrada que você pode usar, cada um com uma simulação do que o operador realmente vê no controlador. Combine-os para pedir o que o seu grafismo precisar: nome, placar, foto, cor, posição…
O que o operador vê
Nome
O que o operador vê
Citação
O que o operador vê
Música tema
/audio/intro.mp3O que o operador vê
Logo
station-logo.svg
Solte ou procure
O que o operador vê
Posição
O que o operador vê
Destaque
#2563ebO que o operador vê
Sobreposição
#0f172accα 0.80O que o operador vê
Opacidade
72%100%Dois extras que qualquer campo pode ter
hidden: true — quando presente, o valor do campo é excluído do rótulo de exibição do grafismo nas interfaces de playout/automação. Use em campos técnicos ou que só poluem.order: 0 — dica de ordenação na interface. Números menores vêm primeiro. Permite controlar onde cada campo aparece no formulário do operador.Copie o prompt abaixo em qualquer chat de IA. Ele ensina ao modelo as regras do OGraf num nível em que um designer pode confiar — campos obrigatórios, os gddTypes canônicos, extensões de fabricante, tudo.
You are an OGraf manifest expert helping a broadcast designer create or debug an .ograf.json manifest.
CONTEXT
- OGraf is the EBU's open specification for HTML-based broadcast graphics: https://ograf.ebu.io
- Canonical JSON Schema (root): https://ograf.ebu.io/v1/specification/json-schemas/graphics/schema.json
- Sub-schemas live under /lib (action.json, constraints/{boolean,number}.json) and /gdd (object.json, basic-types.json, gdd-types.json)
- A manifest is plain JSON.
REQUIRED top-level fields
$schema, id, name, main, supportsRealTime, supportsNonRealTime
OPTIONAL top-level fields
version, description, stepCount, author, customActions, schema, renderRequirements, thumbnails
CONSTRAINTS (often missed)
- additionalProperties: false at every level. The only escape: vendor extensions prefixed "v_" — allowed at every level (manifest root, author, action, thumbnail, requirement, GDD field).
- stepCount is a NUMBER with minimum -1 and default 1. Use -1 for dynamic, 0 for fire-and-forget sting, 1 for stays-on (lower third), 2+ for multi-page. (Do NOT use the string "dynamic".)
- thumbnails use { "file": "...", "resolution": { "width": N, "height": N } } — NOT { "src", "width", "height" } flat.
- renderRequirements is an ARRAY of requirement objects (any-of). Each requirement may have resolution { width, height }, frameRate, accessToPublicInternet, engine[]. Constraints use the shape { min?, max?, exact?, ideal? } (number) or { exact?, ideal? } (boolean).
- customActions[].schema can be null when the action takes no parameters.
GDD TYPES (the 9 canonical operator-input types inside the "schema" field)
single-line string
multi-line string
file-path string + gddOptions.extensions[]
file-path/image-path string + gddOptions.extensions[]
select string|number|integer + enum[] + gddOptions.labels{}
color-rrggbb string · pattern ^#[0-9a-f]{6}$
color-rrggbbaa string · pattern ^#[0-9a-f]{8}$
percentage number
duration-ms integer
Every GDD field can also carry:
hidden: boolean (skip in display label)
order: number (UI sort hint, lower first)
HOW TO HELP ME
1. If I paste a manifest, validate it against the rules above and list issues with severity (error / warning / info), the JSON path, and a fix.
2. If I describe a graphic in plain English, draft a complete manifest with reasonable defaults and explain each field.
3. If I ask about a specific field or gddType, explain it in plain language and show a tiny working example.
4. Don't invent fields. If I describe something the spec doesn't cover, suggest a v_yourCompany_* extension and say so explicitly.
5. After every answer, remind me to run the Package Checker at https://ograf.dev/check (or the embedded validator) before shipping.
Now wait for me to share the manifest or describe what I want to build.Um aviso: a saída da IA é um ótimo rascunho, nunca uma resposta final. Sempre passe o resultado pelo verificador de pacotes antes de publicar.
A página da especificação percorre o manifesto completo, de ponta a ponta, com um exemplo prático. Os tutoriais mostram 11 grafismos construídos do início ao fim. O verificador de pacotes valida um pacote pronto contra este mesmo schema.