npm i -D ajv ajv-formats ajv-clinpx ajv -s ./x-ui-field.schema.json -d ./examples/x-ui-field.valid.json -c ajv-formatsnpx ajv -s ./x-ui-field.schema.json -d ./examples/x-ui-field.invalid.json -c ajv-formats || echo "(esperado: invalido)"npx ajv -s ./x-ui-operation.schema.json -d ./examples/x-ui-operation.valid.jsonnpx ajv -s ./x-ui-resource.schema.json -d ./examples/x-ui-resource.valid.jsonnpx ajv -s ./x-ui-chart.schema.json -d ./examples/x-ui-chart.valid.jsonnpx ajv -s ./x-ui-chart.schema.json -d ./examples/x-ui-chart.invalid.json || echo "(esperado: invalido)"./x-ui-chart-publication-checklist.md/schemas/filtered
contendo idField, idFieldValid,
readOnly, capabilities/schemas/surfaces e /schemas/actions
publicam apenas discovery semantico e links para schemas canonicos
resolviveis via /schemas/filtered/schemas/filtered e hash deterministico
em X-Schema-HashschemaId estavel conforme composicao
path|operation|schemaType|internal|tenant|localex-ui.chart.source.kind = "praxis.stats", o
contrato publicado exige source.resource e
source.operationx-ui.optionSource, o bloco
deve obedecer o schema draft e manter convivio aditivo com o legadodisplayColumns/displayFields no
x-ui de operacaox-ui.chart com version,
kind, source, semantica analitica e eventos
declarativos, mantendo o contrato agnostico de enginesource.kind = "praxis.stats", manter coerencia
com os produtores reais da familia /stats/*, em especial
group-by, timeseries e
distributionx-ui.operationExamples.<schemaType>
quando o OpenAPI publicar exemplos uteis*Message) para melhor
UXcapabilities.options|byId|all|filter|cursor
quando aplicavel/schemas/surfaces e
/schemas/actions sincronizados com a semantica publicada
por @UiSurface e @WorkflowActioncustom.* para extensoes privadas do hostx-ui.optionSource para fontes derivadas
governadas, evitando promover INPUT em campos com semantica
corporativa claratype, controlType ->
SchemaNormalizerService / FieldDefinitionlabel -> rotulagem de inputs e colunasplaceholder, hint, helpText
-> renderizacao de formularioreadOnly, disabled ->
field-state.util.ts e componentesrequired, minLength,
maxLength, pattern, min,
max, range, *Message) ->
helpers de validacaooptions, endpoint,
valueField, displayField,
multiple, emptyOptionText) -> componentes
de selecaonumericFormat, numeric*) ->
componentes numericosdisplayColumns -> padrao de colunas iniciaisoperationExamples.<schemaType> -> exemplos
operacionais para catalogo, playgrounds e documentacao contextualversion, kind, source ->
identidade minima do contrato analitico metadata-drivendimensions, metrics,
aggregations, filters, sort ->
semantica analitica canonicametrics[].seriesKind, metrics[].axis ->
serie heterogenea e eixo primario/secundario para charts combinadosstate, events -> estados e interacoes
declarativas de plataformakey, type, resourcePath ->
identidade minima da fonte derivadadependsOn, excludeSelfField -> cascata
e remocao do proprio predicadosearchMode, pageSize,
includeIds, cachePolicy -> politica publica
minima de consumoidField -> chave primaria no fluxo de CRUD/UIidFieldValid/idFieldMessage ->
diagnostico e alertasreadOnly -> bloqueio de edicaocapabilities -> habilitacao de acoes e
utilitarios/schemas/surfaces -> catalogo semantico de
@UiSurface e surfaces automaticas do recurso/schemas/actions -> catalogo semantico de
@WorkflowAction@praxisui/chartsO draft canonico pode ser mais amplo que o runtime Angular atual.
Suportado hoje no runtime oficial:
source.kind = "praxis.stats"kind: bar, horizontal-bar,
line, pie, donut,
area, stacked-bar, stacked-area,
scatterkind: combo com dados locais/derivados e
series heterogeneas por metricapraxis.statspointClick e drillDown no fluxo atualorientation = "horizontal" para
horizontal-barscatter com leitura bidimensional minima: primeira
dimensao no eixo x e primeira metrica no eixo
yAinda nao suportado no runtime Angular atual:
source.kind = "derived"kind = "combo" sobre
source.kind = "praxis.stats" com multiplas metricas
publicadas pelo backendaggregation = "distinct-count"events.selectionChangeevents.crossFiltertheme.varianttheme.palette como token stringPublicacoes do starter devem deixar essa assimetria explicita ate que os consumidores sejam endurecidos no mesmo nivel.
x-ui.optionSourceO draft canonico de x-ui.optionSource ainda pode ser
mais amplo que o rollout implementado em cada consumidor.
Estado esperado por fase:
x-ui-option-source-rfc.mdx-ui-field.schema.jsonDiretriz de rollout:
x-ui.optionSource deve entrar de forma aditivaendpoint, valueField e
displayField permanecem validos durante a transicaooptionSource a partir de
heuristicas locais se o backend ainda nao o publicarcustom.*: prefixo reservado para extensoes de
fornecedores/hostsschemaId e os headers de
cachefilterOptions: a spec define array, porem
o starter atualmente serializa como string em alguns
caminhos legados. Mantido assim por compatibilidade com consumidores
atuais.optionSource: o schema draft ja valida o bloco, mas a
publicacao em /schemas/filtered e o consumo runtime oficial
dependem das PRs de rollout de backend/host/UI.*.valid.json e *.invalid.json
devem ser tratados como fixtures de validacao, nao como catalogo
exaustivo de exemplos publicos.canonical-payload.json e
x-ui-chart.valid.json tambem cumprem papel documental e
podem ser referenciados em guias, desde que permanecam coerentes com os
schemas publicados.x-ui-field-option-source-*.json cobrem
apenas o draft contratual inicial e nao implicam rollout completo da
feature.