Parse model key: value lines into a clean info-block field list. Keeps only
snake_case keys with a non-empty value (first occurrence wins), drops any
model-supplied kind/aliases (we own those) and any physical-spec key that
is ungrounded for this entity kind (a world-fact spec key on a domain is a
parroted example, never a fact), then prepends type: (if any), the declared kind:,
and appends aliases: when we have them. Always returns at least the kind:
line, so the article always has a parseable infobox.
Parse model
key: valuelines into a clean info-block field list. Keeps only snake_case keys with a non-empty value (first occurrence wins), drops any model-suppliedkind/aliases(we own those) and any physical-spec key that is ungrounded for this entity kind (a world-fact spec key on adomainis a parroted example, never a fact), then prependstype:(if any), the declaredkind:, and appendsaliases:when we have them. Always returns at least thekind:line, so the article always has a parseable infobox.