{
  "version": "snapshot-2026-10-06",
  "engineGeneration": "astra-current",
  "runtimeVerified": false,
  "platformEvidence": [],
  "coverage": "numeric-boolean-enum-object-reference descriptors with editorial access and usage",
  "components": [
    {
      "typeId": "astra.spring.position",
      "name": "Mola de posição",
      "description": "Segue fonte com velocidade e amortecimento persistentes no runtime",
      "family": "Lógica",
      "subfamily": "Molas",
      "api": "SpringPositionConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-PositionConstraint.html",
      "aliases": "Spring SmoothDamp Position Follow",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [
        {
          "typeId": "astra.constraint.position",
          "message": "Escolha restrição direta ou mola para posição"
        },
        {
          "typeId": "astra.constraint.parent",
          "message": "Parent Constraint já escreve posição"
        }
      ],
      "properties": [
        {
          "id": "weight",
          "name": "Influência",
          "kind": "número",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-weight"
        },
        {
          "id": "frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Resposta",
          "unit": "Hz",
          "help": "",
          "default": "3",
          "domain": "0.01 … 60",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Frequência da resposta da mola; valores maiores reagem mais rápido ao movimento do alvo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-frequency"
        },
        {
          "id": "damping_ratio",
          "name": "Razão de amortecimento",
          "kind": "número",
          "group": "Resposta",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento da mola: controla a oscilação em torno do alvo; use a faixa e compare aproximação, não apenas posição final.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-damping-ratio"
        },
        {
          "id": "max_speed",
          "name": "Velocidade máxima",
          "kind": "número",
          "group": "Resposta",
          "unit": "m/s",
          "help": "",
          "default": "1000",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limita a velocidade da aproximação da mola, na unidade indicada para posição/rotação/escala.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-max-speed"
        },
        {
          "id": "offset_x",
          "name": "Offset X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Offset Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Offset Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-enabled"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-position/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Segue fonte com velocidade e amortecimento persistentes no runtime",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Molas** → **Mola de posição**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.spring.rotation",
      "name": "Mola de rotação",
      "description": "Segue orientação por quaternion com amortecimento e caminho curto",
      "family": "Lógica",
      "subfamily": "Molas",
      "api": "SpringRotationConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-RotationConstraint.html",
      "aliases": "Spring Quaternion Rotation Follow",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [
        {
          "typeId": "astra.constraint.rotation",
          "message": "Escolha restrição direta ou mola para rotação"
        },
        {
          "typeId": "astra.constraint.aim",
          "message": "Aim já escreve rotação"
        },
        {
          "typeId": "astra.constraint.parent",
          "message": "Parent Constraint já escreve rotação"
        },
        {
          "typeId": "astra.constraint.look_at",
          "message": "Look At já escreve rotação"
        }
      ],
      "properties": [
        {
          "id": "weight",
          "name": "Influência",
          "kind": "número",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-weight"
        },
        {
          "id": "frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Resposta",
          "unit": "Hz",
          "help": "",
          "default": "3",
          "domain": "0.01 … 60",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Frequência da resposta da mola; valores maiores reagem mais rápido ao movimento do alvo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-frequency"
        },
        {
          "id": "damping_ratio",
          "name": "Razão de amortecimento",
          "kind": "número",
          "group": "Resposta",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento da mola: controla a oscilação em torno do alvo; use a faixa e compare aproximação, não apenas posição final.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-damping-ratio"
        },
        {
          "id": "max_speed",
          "name": "Velocidade máxima",
          "kind": "número",
          "group": "Resposta",
          "unit": "graus/s",
          "help": "",
          "default": "1000",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limita a velocidade da aproximação da mola, na unidade indicada para posição/rotação/escala.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-max-speed"
        },
        {
          "id": "offset_x",
          "name": "Offset X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Offset Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Offset Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-enabled"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-rotation/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Segue orientação por quaternion com amortecimento e caminho curto",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Molas** → **Mola de rotação**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.spring.scale",
      "name": "Mola de escala",
      "description": "Segue escala positiva sem publicar escala singular",
      "family": "Lógica",
      "subfamily": "Molas",
      "api": "SpringScaleConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-ScaleConstraint.html",
      "aliases": "Spring SmoothDamp Scale Follow",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [
        {
          "typeId": "astra.constraint.scale",
          "message": "Escolha restrição direta ou mola para escala"
        }
      ],
      "properties": [
        {
          "id": "weight",
          "name": "Influência",
          "kind": "número",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-weight"
        },
        {
          "id": "frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Resposta",
          "unit": "Hz",
          "help": "",
          "default": "3",
          "domain": "0.01 … 60",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Frequência da resposta da mola; valores maiores reagem mais rápido ao movimento do alvo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-frequency"
        },
        {
          "id": "damping_ratio",
          "name": "Razão de amortecimento",
          "kind": "número",
          "group": "Resposta",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento da mola: controla a oscilação em torno do alvo; use a faixa e compare aproximação, não apenas posição final.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-damping-ratio"
        },
        {
          "id": "max_speed",
          "name": "Velocidade máxima",
          "kind": "número",
          "group": "Resposta",
          "unit": "x/s",
          "help": "",
          "default": "1000",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limita a velocidade da aproximação da mola, na unidade indicada para posição/rotação/escala.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-max-speed"
        },
        {
          "id": "offset_x",
          "name": "Offset X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.0001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator de escala no eixo indicado, combinado à escala da fonte. Valor 1 mantém o fator unitário; não é deslocamento em metros.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Offset Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.0001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator de escala no eixo indicado, combinado à escala da fonte. Valor 1 mantém o fator unitário; não é deslocamento em metros.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Offset Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.0001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator de escala no eixo indicado, combinado à escala da fonte. Valor 1 mantém o fator unitário; não é deslocamento em metros.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-enabled"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Fonte",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-spring-scale/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Segue escala positiva sem publicar escala singular",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Molas** → **Mola de escala**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.constraint.position",
      "name": "Position Constraint",
      "description": "Restrição de mundo com uma fonte",
      "family": "Lógica",
      "subfamily": "Restrições",
      "api": "PositionConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-PositionConstraint.html",
      "aliases": "Constraint Restricao Position",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "weight",
          "name": "Peso",
          "kind": "número",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-weight"
        },
        {
          "id": "offset_x",
          "name": "Deslocamento X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Deslocamento Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Deslocamento Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-enabled"
        },
        {
          "id": "axis_x",
          "name": "Aplicar X",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-axis-x"
        },
        {
          "id": "axis_y",
          "name": "Aplicar Y",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-axis-y"
        },
        {
          "id": "axis_z",
          "name": "Aplicar Z",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-axis-z"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-position/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Restrição de mundo com uma fonte",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Restrições** → **Position Constraint**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.constraint.rotation",
      "name": "Rotation Constraint",
      "description": "Restrição de mundo com uma fonte",
      "family": "Lógica",
      "subfamily": "Restrições",
      "api": "RotationConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-RotationConstraint.html",
      "aliases": "Constraint Restricao Rotation",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "weight",
          "name": "Peso",
          "kind": "número",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-weight"
        },
        {
          "id": "offset_x",
          "name": "Deslocamento X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Deslocamento Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Deslocamento Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-enabled"
        },
        {
          "id": "axis_x",
          "name": "Aplicar X",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-axis-x"
        },
        {
          "id": "axis_y",
          "name": "Aplicar Y",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-axis-y"
        },
        {
          "id": "axis_z",
          "name": "Aplicar Z",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-axis-z"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-rotation/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Restrição de mundo com uma fonte",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Restrições** → **Rotation Constraint**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.constraint.scale",
      "name": "Scale Constraint",
      "description": "Restrição de mundo com uma fonte",
      "family": "Lógica",
      "subfamily": "Restrições",
      "api": "ScaleConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-ScaleConstraint.html",
      "aliases": "Constraint Restricao Scale",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "weight",
          "name": "Peso",
          "kind": "número",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-weight"
        },
        {
          "id": "offset_x",
          "name": "Fator X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "x",
          "help": "",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator de escala no eixo indicado, combinado à escala da fonte. Valor 1 mantém o fator unitário; não é deslocamento em metros.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Fator Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "x",
          "help": "",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator de escala no eixo indicado, combinado à escala da fonte. Valor 1 mantém o fator unitário; não é deslocamento em metros.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Fator Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "x",
          "help": "",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator de escala no eixo indicado, combinado à escala da fonte. Valor 1 mantém o fator unitário; não é deslocamento em metros.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-enabled"
        },
        {
          "id": "axis_x",
          "name": "Aplicar X",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-axis-x"
        },
        {
          "id": "axis_y",
          "name": "Aplicar Y",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-axis-y"
        },
        {
          "id": "axis_z",
          "name": "Aplicar Z",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-axis-z"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-scale/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Restrição de mundo com uma fonte",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Restrições** → **Scale Constraint**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.constraint.aim",
      "name": "Aim Constraint",
      "description": "Restrição de mundo com uma fonte",
      "family": "Lógica",
      "subfamily": "Restrições",
      "api": "AimConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-AimConstraint.html",
      "aliases": "Constraint Restricao Aim",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "weight",
          "name": "Peso",
          "kind": "número",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-weight"
        },
        {
          "id": "offset_x",
          "name": "Deslocamento X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Deslocamento Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Deslocamento Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-enabled"
        },
        {
          "id": "axis_x",
          "name": "Aplicar X",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-axis-x"
        },
        {
          "id": "axis_y",
          "name": "Aplicar Y",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-axis-y"
        },
        {
          "id": "axis_z",
          "name": "Aplicar Z",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-axis-z"
        },
        {
          "id": "aim_axis",
          "name": "Eixo de mira",
          "kind": "enumeração",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "+Z",
          "domain": "+X | +Y | +Z | -X | -Y | -Z",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe o eixo local alinhado à direção do alvo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-aim-axis"
        },
        {
          "id": "up_axis",
          "name": "Vertical de mundo",
          "kind": "enumeração",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "Y",
          "domain": "Y | Z | X",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Define a convenção de vertical da orientação; evite direção degenerada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-up-axis"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-aim/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Restrição de mundo com uma fonte",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Restrições** → **Aim Constraint**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.constraint.parent",
      "name": "Parent Constraint",
      "description": "Segue posição e rotação da fonte sem herdar escala",
      "family": "Lógica",
      "subfamily": "Restrições",
      "api": "ParentConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-ParentConstraint.html",
      "aliases": "Parent Constraint Pai",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "weight",
          "name": "Peso",
          "kind": "número",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-weight"
        },
        {
          "id": "offset_x",
          "name": "Deslocamento X",
          "kind": "número",
          "group": "Ajustes",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Deslocamento Y",
          "kind": "número",
          "group": "Ajustes",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Deslocamento Z",
          "kind": "número",
          "group": "Ajustes",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-offset-z"
        },
        {
          "id": "rotation_offset_x",
          "name": "Rotação offset X",
          "kind": "número",
          "group": "Rotação",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Offset angular da orientação resultante, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-rotation-offset-x"
        },
        {
          "id": "rotation_offset_y",
          "name": "Rotação offset Y",
          "kind": "número",
          "group": "Rotação",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Offset angular da orientação resultante, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-rotation-offset-y"
        },
        {
          "id": "rotation_offset_z",
          "name": "Rotação offset Z",
          "kind": "número",
          "group": "Rotação",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Offset angular da orientação resultante, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-rotation-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-enabled"
        },
        {
          "id": "axis_x",
          "name": "Aplicar X",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-axis-x"
        },
        {
          "id": "axis_y",
          "name": "Aplicar Y",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-axis-y"
        },
        {
          "id": "axis_z",
          "name": "Aplicar Z",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-axis-z"
        },
        {
          "id": "rotation_x",
          "name": "Rotação X",
          "kind": "booleano",
          "group": "Rotação",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-rotation-x"
        },
        {
          "id": "rotation_y",
          "name": "Rotação Y",
          "kind": "booleano",
          "group": "Rotação",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-rotation-y"
        },
        {
          "id": "rotation_z",
          "name": "Rotação Z",
          "kind": "booleano",
          "group": "Rotação",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-rotation-z"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-parent/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Segue posição e rotação da fonte sem herdar escala",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Restrições** → **Parent Constraint**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.constraint.look_at",
      "name": "Look At Constraint",
      "description": "Orienta +Z para a fonte com vertical e roll",
      "family": "Lógica",
      "subfamily": "Restrições",
      "api": "LookAtConstraint",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-LookAtConstraint.html",
      "aliases": "Look At Olhar",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "weight",
          "name": "Peso",
          "kind": "número",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influência do resultado: 0 não influencia e 1 aplica integralmente. Compare com a pose sem a restrição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-weight"
        },
        {
          "id": "roll",
          "name": "Roll",
          "kind": "número",
          "group": "Mira",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-360 … 360",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação em torno do eixo de mira; não muda a posição do alvo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-roll"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-enabled"
        },
        {
          "id": "axis_x",
          "name": "Aplicar X",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-axis-x"
        },
        {
          "id": "axis_y",
          "name": "Aplicar Y",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-axis-y"
        },
        {
          "id": "axis_z",
          "name": "Aplicar Z",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica a restrição no eixo indicado; desligar conserva esse canal fora da influência.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-axis-z"
        },
        {
          "id": "up_axis",
          "name": "Vertical de mundo",
          "kind": "enumeração",
          "group": "Mira",
          "unit": "",
          "help": "",
          "default": "Y",
          "domain": "Y | Z | X",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Define a convenção de vertical da orientação; evite direção degenerada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-up-axis"
        },
        {
          "id": "target",
          "name": "Fonte",
          "kind": "referência",
          "group": "Influência",
          "unit": "",
          "help": "",
          "default": "Escolher fonte",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-constraint-look-at/#field-target"
        }
      ],
      "guide": {
        "title": "Restrições e molas",
        "route": "roadmap/restricoes-e-molas",
        "use": "Ligue a fonte/alvo no Inspector; escolha os eixos e a influência. Use em um objeto cuja pose não esteja sob autoridade incompatível da física ou de outro controlador.",
        "example": "Crie um objeto visual e uma fonte. Atribua a fonte, mova-a em Play e compare o objeto com Peso 0 e Peso 1. Para mola, compare duas frequências e observe a aproximação ao alvo.",
        "next": "Consolidar autoria de fontes, limites de composição e aceite de lifecycle/pose por família. Não há cronograma individual publicado para cada setter. A presença de uma restrição não implica suporte a toda a família de constraints da Unity.",
        "purpose": "Orienta +Z para a fonte com vertical e roll",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Restrições** → **Look At Constraint**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.tween.transform",
      "name": "Transform Tween",
      "description": "Interpola canais locais com espera, curva e repetição",
      "family": "Lógica",
      "subfamily": "Tempo",
      "api": "TransformTween",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_tween.html",
      "aliases": "Tween Interpolar Transform",
      "schemaVersion": 3,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "duration",
          "name": "Duração",
          "kind": "número",
          "group": "Tempo",
          "unit": "s",
          "help": "",
          "default": "1",
          "domain": "0.001 … 36000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Tempo da reprodução/interpolação; configure na unidade indicada. Valor curto acelera a transição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-duration"
        },
        {
          "id": "delay",
          "name": "Espera",
          "kind": "número",
          "group": "Tempo",
          "unit": "s",
          "help": "",
          "default": "0",
          "domain": "0 … 36000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Espera inicial antes de reproduzir a transição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-delay"
        },
        {
          "id": "position_x",
          "name": "Destino X",
          "kind": "número",
          "group": "Destino",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Destino do canal de posição do tween, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-position-x"
        },
        {
          "id": "position_y",
          "name": "Destino Y",
          "kind": "número",
          "group": "Destino",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Destino do canal de posição do tween, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-position-y"
        },
        {
          "id": "position_z",
          "name": "Destino Z",
          "kind": "número",
          "group": "Destino",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Destino do canal de posição do tween, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-position-z"
        },
        {
          "id": "rotation_x",
          "name": "Rotação X",
          "kind": "número",
          "group": "Destino",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-rotation-x"
        },
        {
          "id": "rotation_y",
          "name": "Rotação Y",
          "kind": "número",
          "group": "Destino",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-rotation-y"
        },
        {
          "id": "rotation_z",
          "name": "Rotação Z",
          "kind": "número",
          "group": "Destino",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-rotation-z"
        },
        {
          "id": "scale_x",
          "name": "Escala X",
          "kind": "número",
          "group": "Destino",
          "unit": "x",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Destino do canal de escala do tween, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-scale-x"
        },
        {
          "id": "scale_y",
          "name": "Escala Y",
          "kind": "número",
          "group": "Destino",
          "unit": "x",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Destino do canal de escala do tween, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-scale-y"
        },
        {
          "id": "scale_z",
          "name": "Escala Z",
          "kind": "número",
          "group": "Destino",
          "unit": "x",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Destino do canal de escala do tween, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-scale-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Tempo",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-enabled"
        },
        {
          "id": "autoplay",
          "name": "Iniciar no Play",
          "kind": "booleano",
          "group": "Tempo",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Inicia a reprodução automaticamente ao ativar a execução; não é o mesmo que repetição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-autoplay"
        },
        {
          "id": "pingpong",
          "name": "Ida e volta",
          "kind": "booleano",
          "group": "Repetição",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Alterna ida e volta na reprodução.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-pingpong"
        },
        {
          "id": "relative",
          "name": "Destino relativo",
          "kind": "booleano",
          "group": "Destino",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Interpreta os valores da transição como deslocamento relativo, conforme o canal.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-relative"
        },
        {
          "id": "position",
          "name": "Mover",
          "kind": "booleano",
          "group": "Destino",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona a participação do canal de posição no tween.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-position"
        },
        {
          "id": "rotation",
          "name": "Girar",
          "kind": "booleano",
          "group": "Destino",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona a participação do canal de rotação no tween.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-rotation"
        },
        {
          "id": "scale",
          "name": "Escalar",
          "kind": "booleano",
          "group": "Destino",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona a participação do canal de escala no tween.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-scale"
        },
        {
          "id": "ignore_time_scale",
          "name": "Ignorar escala de tempo",
          "kind": "booleano",
          "group": "Tempo",
          "unit": "",
          "help": "Usa o intervalo não escalado aceito; pausa editorial interrompe ambos os modos",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Usa o intervalo não escalado aceito; pausa editorial interrompe ambos os modos",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-ignore-time-scale"
        },
        {
          "id": "easing",
          "name": "Curva",
          "kind": "enumeração",
          "group": "Tempo",
          "unit": "",
          "help": "",
          "default": "Linear",
          "domain": "Linear | Smoothstep | Quadrático entrada | Quadrático saída",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe a curva de interpolação; altera a velocidade ao longo da transição, não o valor final.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-easing"
        },
        {
          "id": "loops",
          "name": "Ciclos",
          "kind": "enumeração",
          "group": "Repetição",
          "unit": "",
          "help": "",
          "default": "Uma vez",
          "domain": "Infinito | Uma vez | Duas vezes | Três vezes | Dez vezes",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Número/política de repetições no domínio indicado; confira a opção de repetição contínua na enumeração/contrato.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-loops"
        },
        {
          "id": "finished_action",
          "name": "Ao concluir",
          "kind": "enumeração",
          "group": "Conexão",
          "unit": "",
          "help": "Executa depois da pose final de todos os ciclos finitos; cancelar ou ciclo infinito não dispara",
          "default": "Desconectado",
          "domain": "Desconectado | Ativar objeto | Desativar objeto | Alternar objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Executa depois da pose final de todos os ciclos finitos; cancelar ou ciclo infinito não dispara",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-finished-action"
        },
        {
          "id": "finished_target",
          "name": "Receptor",
          "kind": "referência",
          "group": "Conexão",
          "unit": "",
          "help": "Referência persistente remapeada ao clonar; controla activeSelf do receptor",
          "default": "Escolher objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência persistente remapeada ao clonar; controla activeSelf do receptor",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-tween-transform/#field-finished-target"
        }
      ],
      "guide": {
        "title": "Tempo, eventos e tweens",
        "route": "roadmap/tempo-eventos-e-tweens",
        "use": "Configure duração/intervalo e reprodução, depois ligue a ação ou Behavior consumidor. Separe relógio escalado do relógio real e callbacks de quadro dos passos físicos.",
        "example": "Use intervalo de 1 s, inicie Play e altere pausa/escala do tempo. Confira a diferença ao ligar Ignorar escala do tempo; ligue um receptor para observar a ação.",
        "next": "Ampliar composição e diagnóstico de ações/curvas e conferir cancelamento, pausa, remoção e reinício. Sem data prometida. Timeline geral não é consequência da existência de Timer ou tween.",
        "purpose": "Interpola canais locais com espera, curva e repetição",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Tempo** → **Transform Tween**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.time.timer",
      "name": "Timer",
      "description": "Dispara eventos temporizados e ações persistentes de ativação de objetos",
      "family": "Lógica",
      "subfamily": "Tempo",
      "api": "GameTimer",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_timer.html",
      "aliases": "Timer Countdown Interval Cronometro",
      "schemaVersion": 4,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "interval_seconds",
          "name": "Intervalo",
          "kind": "número",
          "group": "Disparo",
          "unit": "s",
          "help": "Tempo entre disparos; uma vez quando Repetir está desligado",
          "default": "1",
          "domain": "0.05 … 3600",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Tempo entre disparos; uma vez quando Repetir está desligado",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-time-timer/#field-interval-seconds"
        },
        {
          "id": "auto_start",
          "name": "Iniciar automaticamente",
          "kind": "booleano",
          "group": "Disparo",
          "unit": "",
          "help": "Inicia ao entrar em Play ou criar a instância; desligado exige Start. Alteração não reinicia timer já criado",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Inicia ao entrar em Play ou criar a instância; desligado exige Start. Alteração não reinicia timer já criado",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-time-timer/#field-auto-start"
        },
        {
          "id": "repeat",
          "name": "Repetir",
          "kind": "booleano",
          "group": "Disparo",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Repete o intervalo; desligado produz um disparo e termina.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-time-timer/#field-repeat"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Disparo",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-time-timer/#field-enabled"
        },
        {
          "id": "ignore_time_scale",
          "name": "Ignorar escala de tempo",
          "kind": "booleano",
          "group": "Disparo",
          "unit": "",
          "help": "Usa o intervalo não escalado aceito do quadro; a pausa do editor interrompe ambos os relógios",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Usa o intervalo não escalado aceito do quadro; a pausa do editor interrompe ambos os relógios",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-time-timer/#field-ignore-time-scale"
        },
        {
          "id": "elapsed_action",
          "name": "Ao disparar",
          "kind": "enumeração",
          "group": "Conexão",
          "unit": "",
          "help": "Executa uma ação no alvo antes de entregar TimerElapsed; alternar preserva a paridade dos disparos agregados",
          "default": "Desconectado",
          "domain": "Desconectado | Ativar objeto | Desativar objeto | Alternar objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Executa uma ação no alvo antes de entregar TimerElapsed; alternar preserva a paridade dos disparos agregados",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-time-timer/#field-elapsed-action"
        },
        {
          "id": "elapsed_target",
          "name": "Receptor",
          "kind": "referência",
          "group": "Conexão",
          "unit": "",
          "help": "Alvo da ação; usa referência persistente remapeada por clone/prefab",
          "default": "Escolher objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Alvo da ação; usa referência persistente remapeada por clone/prefab",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-time-timer/#field-elapsed-target"
        }
      ],
      "guide": {
        "title": "Tempo, eventos e tweens",
        "route": "roadmap/tempo-eventos-e-tweens",
        "use": "Configure duração/intervalo e reprodução, depois ligue a ação ou Behavior consumidor. Separe relógio escalado do relógio real e callbacks de quadro dos passos físicos.",
        "example": "Use intervalo de 1 s, inicie Play e altere pausa/escala do tempo. Confira a diferença ao ligar Ignorar escala do tempo; ligue um receptor para observar a ação.",
        "next": "Ampliar composição e diagnóstico de ações/curvas e conferir cancelamento, pausa, remoção e reinício. Sem data prometida. Timeline geral não é consequência da existência de Timer ou tween.",
        "purpose": "Dispara eventos temporizados e ações persistentes de ativação de objetos",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Tempo** → **Timer**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.logic.event_connection",
      "name": "Conexão de evento",
      "description": "Evento deste objeto aciona objetos ou métodos, sem script",
      "family": "Lógica",
      "subfamily": "Eventos",
      "api": "EventConnection",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/ScriptReference/Events.UnityEvent.html",
      "aliases": "UnityEvent Signal Evento Conexao Trigger Gatilho",
      "schemaVersion": 1,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "argument",
          "name": "Valor",
          "kind": "número",
          "group": "Então",
          "unit": "s",
          "help": "Timer: intervalo (zero usa o autorado). Áudio: posição do cursor",
          "default": "0",
          "domain": "0 … 3600",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Timer: intervalo (zero usa o autorado). Áudio: posição do cursor",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-argument"
        },
        {
          "id": "enabled",
          "name": "Ativa",
          "kind": "booleano",
          "group": "Conexão",
          "unit": "",
          "help": "Desligada não reage a eventos; a configuração é preservada",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligada não reage a eventos; a configuração é preservada",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-enabled"
        },
        {
          "id": "once",
          "name": "Uma vez",
          "kind": "booleano",
          "group": "Conexão",
          "unit": "",
          "help": "Reage só ao primeiro evento de cada execução de Play",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Reage só ao primeiro evento de cada execução de Play",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-once"
        },
        {
          "id": "event",
          "name": "Evento",
          "kind": "enumeração",
          "group": "Quando",
          "unit": "",
          "help": "Emitido por um componente deste objeto; sem o componente, a conexão não dispara",
          "default": "Nenhum",
          "domain": "Nenhum | Timer disparou | Tween concluiu | Sensor 3D: entrou | Sensor 3D: saiu | Colisão 3D: começou | Colisão 3D: terminou | Sensor 2D: entrou | Sensor 2D: saiu | Colisão 2D: começou | Colisão 2D: terminou",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Emitido por um componente deste objeto; sem o componente, a conexão não dispara",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-event"
        },
        {
          "id": "action",
          "name": "Ação",
          "kind": "enumeração",
          "group": "Então",
          "unit": "",
          "help": "Executada no ponto seguro seguinte ao evento, antes do próximo despacho de scripts",
          "default": "Desconectado",
          "domain": "Desconectado | Ativar objeto | Desativar objeto | Alternar objeto | Chamar método",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Executada no ponto seguro seguinte ao evento, antes do próximo despacho de scripts",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-action"
        },
        {
          "id": "method",
          "name": "Método",
          "kind": "enumeração",
          "group": "Então",
          "unit": "",
          "help": "Chamado no primeiro componente do tipo correspondente no receptor",
          "default": "Nenhum",
          "domain": "Nenhum | Áudio: tocar | Áudio: parar | Áudio: pausar | Áudio: retomar | Áudio: posicionar | Timer: iniciar | Timer: parar | Timer: pausar | Timer: retomar | Tween: reiniciar | Tween: cancelar | Tween: pausar | Tween: retomar | Percurso: reiniciar | Percurso: parar",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Chamado no primeiro componente do tipo correspondente no receptor",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-method"
        },
        {
          "id": "receiver",
          "name": "Receptor",
          "kind": "referência",
          "group": "Então",
          "unit": "",
          "help": "Objeto ativado ou dono do componente chamado; vazio usa o próprio emissor",
          "default": "Este objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto ativado ou dono do componente chamado; vazio usa o próprio emissor",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-receiver"
        },
        {
          "id": "other_filter",
          "name": "Outro objeto",
          "kind": "referência",
          "group": "Quando",
          "unit": "",
          "help": "Opcional: só contatos com este outro objeto",
          "default": "Qualquer objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Opcional: só contatos com este outro objeto",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-logic-event-connection/#field-other-filter"
        }
      ],
      "guide": {
        "title": "Tempo, eventos e tweens",
        "route": "roadmap/tempo-eventos-e-tweens",
        "use": "Configure duração/intervalo e reprodução, depois ligue a ação ou Behavior consumidor. Separe relógio escalado do relógio real e callbacks de quadro dos passos físicos.",
        "example": "Use intervalo de 1 s, inicie Play e altere pausa/escala do tempo. Confira a diferença ao ligar Ignorar escala do tempo; ligue um receptor para observar a ação.",
        "next": "Ampliar composição e diagnóstico de ações/curvas e conferir cancelamento, pausa, remoção e reinício. Sem data prometida. Timeline geral não é consequência da existência de Timer ou tween.",
        "purpose": "Evento deste objeto aciona objetos ou métodos, sem script",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Eventos** → **Conexão de evento**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.script.behavior",
      "name": "Comportamento",
      "description": "Código C# do projeto",
      "family": "Lógica",
      "subfamily": "Código",
      "api": "",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/ScriptReference/MonoBehaviour.html",
      "aliases": "MonoBehaviour Script Behaviour",
      "schemaVersion": 1,
      "allowMultiple": true,
      "listedInAdd": false,
      "structuralInPlay": "não permitido",
      "propertiesInPlay": "não permitido",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Execução",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "comportamento",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-script-behavior/#field-enabled"
        }
      ],
      "guide": {
        "title": "Objetos, Behaviors e composição",
        "route": "roadmap/objetos-e-scripts",
        "use": "Crie um Behavior C# com ComponentId estável, compile o projeto e anexe ao objeto. Campos públicos suportados e PropertyId aparecem no Inspector; callbacks recebem o mundo do Play.",
        "example": "Anexe PlayerHealth ao Jogador e HeartHud ao HUD; atribua a referência Player, compile e entre em Play.",
        "next": "Consolidar cenas, prefabs, contratos de scripts e mensagens, com referência remapeada e lifecycle correto. Contagem de APIs não mede fechamento funcional. Comportamento não validado deve permanecer explicitamente sem aceite.",
        "purpose": "Código C# do projeto",
        "location": "Área de código → crie/compile o Behavior → anexe ao objeto. Este registro não é criado pelo menu genérico.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.ui.canvas",
      "name": "Canvas UI",
      "description": "Instância independente de documento de UI, na tela ou no objeto",
      "family": "Renderização",
      "subfamily": "Interface",
      "api": "UiCanvas",
      "reference": "https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/class-Canvas.html",
      "aliases": "Canvas UI HUD interface WorldCanvas",
      "schemaVersion": 2,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "offset_x",
          "name": "Posição X",
          "kind": "número",
          "group": "Apresentação",
          "unit": "m",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Posição Y",
          "kind": "número",
          "group": "Apresentação",
          "unit": "m",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Posição Z",
          "kind": "número",
          "group": "Apresentação",
          "unit": "m",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-offset-z"
        },
        {
          "id": "rotation_x",
          "name": "Rotação X",
          "kind": "número",
          "group": "Apresentação",
          "unit": "°",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "0",
          "domain": "-36000 … 36000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-rotation-x"
        },
        {
          "id": "rotation_y",
          "name": "Rotação Y",
          "kind": "número",
          "group": "Apresentação",
          "unit": "°",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "0",
          "domain": "-36000 … 36000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-rotation-y"
        },
        {
          "id": "rotation_z",
          "name": "Rotação Z",
          "kind": "número",
          "group": "Apresentação",
          "unit": "°",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "0",
          "domain": "-36000 … 36000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-rotation-z"
        },
        {
          "id": "width",
          "name": "Largura",
          "kind": "número",
          "group": "Canvas",
          "unit": "px",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "800",
          "domain": "1 … 16384",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Resolução local do plano no modo Mundo. No modo Tela, o retângulo é o viewport; não é resolução de referência para escala.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-width"
        },
        {
          "id": "height",
          "name": "Altura",
          "kind": "número",
          "group": "Canvas",
          "unit": "px",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "600",
          "domain": "1 … 16384",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Resolução local do plano no modo Mundo. No modo Tela, o retângulo é o viewport; não é resolução de referência para escala.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-height"
        },
        {
          "id": "units_per_pixel",
          "name": "Unidades por pixel",
          "kind": "número",
          "group": "Canvas",
          "unit": "m/px",
          "help": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "default": "0.005",
          "domain": "0.00001 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica-se ao Canvas no mundo; Tela usa o viewport.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-units-per-pixel"
        },
        {
          "id": "order",
          "name": "Ordem",
          "kind": "número",
          "group": "Canvas",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ordena apresentação dos Canvas; compare sobreposição e entrada com o modo efetivo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-order"
        },
        {
          "id": "enabled",
          "name": "Habilitado",
          "kind": "booleano",
          "group": "Canvas",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-enabled"
        },
        {
          "id": "occlusion",
          "name": "Oclusão no mundo",
          "kind": "booleano",
          "group": "Canvas",
          "unit": "",
          "help": "Depth e hit de Canvas no mundo.",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Depth e hit de Canvas no mundo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-occlusion"
        },
        {
          "id": "mode",
          "name": "Apresentação",
          "kind": "enumeração",
          "group": "Canvas",
          "unit": "",
          "help": "",
          "default": "Tela",
          "domain": "Tela | Mundo / objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona o modo do componente no domínio indicado; revise os campos que aparecem após trocar.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-mode"
        },
        {
          "id": "movement_space",
          "name": "Espaço do movimento",
          "kind": "enumeração",
          "group": "Entrada",
          "unit": "",
          "help": "",
          "default": "Mundo",
          "domain": "Mundo | Local do jogador | Camera de entrada",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe espaço do vetor de movimento: mundo, jogador ou câmera de entrada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-movement-space"
        },
        {
          "id": "input_receiver",
          "name": "Jogador / receptor",
          "kind": "referência",
          "group": "Entrada",
          "unit": "",
          "help": "Character ou motor de corpo dinâmico ativo.",
          "default": "Acoes globais",
          "domain": "objeto compatível com o receptor",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Character ou motor de corpo dinâmico ativo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-input-receiver"
        },
        {
          "id": "input_camera",
          "name": "Camera de entrada",
          "kind": "referência",
          "group": "Entrada",
          "unit": "",
          "help": "",
          "default": "Nenhuma",
          "domain": "astra.camera",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Câmera usada para o espaço de movimento/olhar dos controles do Canvas.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-ui-canvas/#field-input-camera"
        }
      ],
      "guide": {
        "title": "Canvas e UI de jogo",
        "route": "ui/roadmap",
        "use": "Salve um documento .aeui, atribua Documento UI e escolha Tela para HUD ou Mundo para plano na cena. Elementos Image/Text/Button são criados dentro desse documento.",
        "example": "Siga o tutorial HUD de corações: três Images cheias sobre três vazias e HeartHud ligado a PlayerHealth.",
        "next": "R0–R12: imagem/skins, autoria, foco/input, controles, layout, texto, bindings, inventário, apresentações, animação, templates e acesso. Consulte estados e critérios por função na página dedicada.",
        "purpose": "Instância independente de documento de UI, na tela ou no objeto",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Renderização** / **Interface** → **Canvas UI**.",
        "extra": "O recurso Documento UI não entra na tabela numérica abaixo. Ele é escolhido por recurso registrado; em C#, use GetDocument/SetDocument. Image está dentro do .aeui, não neste componente."
      }
    },
    {
      "typeId": "astra.render.mesh",
      "name": "Malha",
      "description": "Geometria e material",
      "family": "Renderização",
      "subfamily": "Geometria",
      "api": "MeshRenderer",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-MeshRenderer.html",
      "aliases": "MeshFilter MeshRenderer MeshInstance3D",
      "schemaVersion": 9,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "base_color.r",
          "name": "Cor R",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal R da cor base_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-base-color-r"
        },
        {
          "id": "base_color.g",
          "name": "Cor G",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal G da cor base_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-base-color-g"
        },
        {
          "id": "base_color.b",
          "name": "Cor B",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal B da cor base_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-base-color-b"
        },
        {
          "id": "roughness",
          "name": "Rugosidade",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rugosidade PBR: menor valor produz reflexão mais concentrada; maior torna a superfície mais áspera.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-roughness"
        },
        {
          "id": "metallic",
          "name": "Metálico",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participação metálica no material PBR; altera resposta difusa/especular.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-metallic"
        },
        {
          "id": "normal_scale",
          "name": "Intensidade da normal",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 16",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Intensidade do normal map; exige textura e canal compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-normal-scale"
        },
        {
          "id": "specular",
          "name": "Especular",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ajuste especular do material dentro do contrato do renderer.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-specular"
        },
        {
          "id": "emission.r",
          "name": "Emissão R",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal R da cor emission no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-emission-r"
        },
        {
          "id": "emission.g",
          "name": "Emissão G",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal G da cor emission no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-emission-g"
        },
        {
          "id": "emission.b",
          "name": "Emissão B",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal B da cor emission no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-emission-b"
        },
        {
          "id": "emission_strength",
          "name": "Potência de emissão",
          "kind": "número",
          "group": "",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplica a emissão do material; não adiciona uma luz iluminando objetos vizinhos.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-emission-strength"
        },
        {
          "id": "enabled",
          "name": "Renderizar",
          "kind": "booleano",
          "group": "",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-enabled"
        },
        {
          "id": "lightmap.scale_u",
          "name": "Escala U",
          "kind": "número",
          "group": "Lightmap",
          "unit": "",
          "help": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "default": "1",
          "domain": "0.00001 … 1",
          "limitation": "RGB linear de irradiância; UV1 autoral; exige bindless. Sem bake, unwrap ou probes",
          "capability": "render.gi.lightmap",
          "invalidation": "desenho, material, residência de textura",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-lightmap-scale-u"
        },
        {
          "id": "lightmap.scale_v",
          "name": "Escala V",
          "kind": "número",
          "group": "Lightmap",
          "unit": "",
          "help": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "default": "1",
          "domain": "0.00001 … 1",
          "limitation": "RGB linear de irradiância; UV1 autoral; exige bindless. Sem bake, unwrap ou probes",
          "capability": "render.gi.lightmap",
          "invalidation": "desenho, material, residência de textura",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-lightmap-scale-v"
        },
        {
          "id": "lightmap.offset_u",
          "name": "Deslocamento U",
          "kind": "número",
          "group": "Lightmap",
          "unit": "",
          "help": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "RGB linear de irradiância; UV1 autoral; exige bindless. Sem bake, unwrap ou probes",
          "capability": "render.gi.lightmap",
          "invalidation": "desenho, material, residência de textura",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-lightmap-offset-u"
        },
        {
          "id": "lightmap.offset_v",
          "name": "Deslocamento V",
          "kind": "número",
          "group": "Lightmap",
          "unit": "",
          "help": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "RGB linear de irradiância; UV1 autoral; exige bindless. Sem bake, unwrap ou probes",
          "capability": "render.gi.lightmap",
          "invalidation": "desenho, material, residência de textura",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-lightmap-offset-v"
        },
        {
          "id": "lightmap.intensity",
          "name": "Intensidade",
          "kind": "número",
          "group": "Lightmap",
          "unit": "",
          "help": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "RGB linear de irradiância; UV1 autoral; exige bindless. Sem bake, unwrap ou probes",
          "capability": "render.gi.lightmap",
          "invalidation": "desenho, material, residência de textura",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-lightmap-intensity"
        },
        {
          "id": "surface.alpha_cutoff",
          "name": "Corte do alfa",
          "kind": "número",
          "group": "Superfície",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Limiar de corte de alpha no modo máscara; não cria transparência blend.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-surface-alpha-cutoff"
        },
        {
          "id": "channels.occlusion_strength",
          "name": "Força da oclusão",
          "kind": "número",
          "group": "Canais",
          "unit": "",
          "help": "",
          "default": "-1",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Intensidade da oclusão do material, se a origem/canal tiver recurso.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-channels-occlusion-strength"
        },
        {
          "id": "sampling.offset_u",
          "name": "Deslocamento U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-offset-u"
        },
        {
          "id": "sampling.offset_v",
          "name": "Deslocamento V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-offset-v"
        },
        {
          "id": "sampling.scale_u",
          "name": "Escala U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-scale-u"
        },
        {
          "id": "sampling.scale_v",
          "name": "Escala V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-scale-v"
        },
        {
          "id": "sampling.rotation",
          "name": "Rotação da UV",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-360 … 360",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Gira as coordenadas UV da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-rotation"
        },
        {
          "id": "sampling.base_color.offset_u",
          "name": "Cor base / Deslocamento U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-offset-u"
        },
        {
          "id": "sampling.base_color.offset_v",
          "name": "Cor base / Deslocamento V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-offset-v"
        },
        {
          "id": "sampling.base_color.scale_u",
          "name": "Cor base / Escala U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-scale-u"
        },
        {
          "id": "sampling.base_color.scale_v",
          "name": "Cor base / Escala V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-scale-v"
        },
        {
          "id": "sampling.base_color.rotation",
          "name": "Cor base / Rotação",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-360 … 360",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Gira as coordenadas UV da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-rotation"
        },
        {
          "id": "sampling.normal.offset_u",
          "name": "Normal / Deslocamento U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-offset-u"
        },
        {
          "id": "sampling.normal.offset_v",
          "name": "Normal / Deslocamento V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-offset-v"
        },
        {
          "id": "sampling.normal.scale_u",
          "name": "Normal / Escala U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-scale-u"
        },
        {
          "id": "sampling.normal.scale_v",
          "name": "Normal / Escala V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-scale-v"
        },
        {
          "id": "sampling.normal.rotation",
          "name": "Normal / Rotação",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-360 … 360",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Gira as coordenadas UV da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-rotation"
        },
        {
          "id": "sampling.metallic_roughness.offset_u",
          "name": "Metal / rugosidade / Deslocamento U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-offset-u"
        },
        {
          "id": "sampling.metallic_roughness.offset_v",
          "name": "Metal / rugosidade / Deslocamento V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-offset-v"
        },
        {
          "id": "sampling.metallic_roughness.scale_u",
          "name": "Metal / rugosidade / Escala U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-scale-u"
        },
        {
          "id": "sampling.metallic_roughness.scale_v",
          "name": "Metal / rugosidade / Escala V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-scale-v"
        },
        {
          "id": "sampling.metallic_roughness.rotation",
          "name": "Metal / rugosidade / Rotação",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-360 … 360",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Gira as coordenadas UV da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-rotation"
        },
        {
          "id": "sampling.emissive.offset_u",
          "name": "Emissão / Deslocamento U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-offset-u"
        },
        {
          "id": "sampling.emissive.offset_v",
          "name": "Emissão / Deslocamento V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Desloca a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-offset-v"
        },
        {
          "id": "sampling.emissive.scale_u",
          "name": "Emissão / Escala U",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada U da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-scale-u"
        },
        {
          "id": "sampling.emissive.scale_v",
          "name": "Emissão / Escala V",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Multiplica a coordenada V da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-scale-v"
        },
        {
          "id": "sampling.emissive.rotation",
          "name": "Emissão / Rotação",
          "kind": "número",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-360 … 360",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Gira as coordenadas UV da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-rotation"
        },
        {
          "id": "material.base_color.r",
          "name": "Cor R",
          "kind": "número",
          "group": "Cor",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Canal R da cor material.base_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-base-color-r"
        },
        {
          "id": "material.base_color.g",
          "name": "Cor G",
          "kind": "número",
          "group": "Cor",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Canal G da cor material.base_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-base-color-g"
        },
        {
          "id": "material.base_color.b",
          "name": "Cor B",
          "kind": "número",
          "group": "Cor",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Canal B da cor material.base_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-base-color-b"
        },
        {
          "id": "material.roughness",
          "name": "Rugosidade",
          "kind": "número",
          "group": "Superfície",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Valor do slot quando o override de material estiver ativo. Rugosidade PBR: menor valor produz reflexão mais concentrada; maior torna a superfície mais áspera.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-roughness"
        },
        {
          "id": "material.metallic",
          "name": "Metálico",
          "kind": "número",
          "group": "Superfície",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Valor do slot quando o override de material estiver ativo. Participação metálica no material PBR; altera resposta difusa/especular.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-metallic"
        },
        {
          "id": "material.normal_scale",
          "name": "Intensidade da normal",
          "kind": "número",
          "group": "Superfície",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 16",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Valor do slot quando o override de material estiver ativo. Intensidade do normal map; exige textura e canal compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-normal-scale"
        },
        {
          "id": "material.specular",
          "name": "Especular",
          "kind": "número",
          "group": "Superfície",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Valor do slot quando o override de material estiver ativo. Ajuste especular do material dentro do contrato do renderer.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-specular"
        },
        {
          "id": "material.emission.r",
          "name": "Emissão R",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Canal R da cor material.emission no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-emission-r"
        },
        {
          "id": "material.emission.g",
          "name": "Emissão G",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Canal G da cor material.emission no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-emission-g"
        },
        {
          "id": "material.emission.b",
          "name": "Emissão B",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Canal B da cor material.emission no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-emission-b"
        },
        {
          "id": "material.emission_strength",
          "name": "Potência de emissão",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Valor do slot quando o override de material estiver ativo. Multiplica a emissão do material; não adiciona uma luz iluminando objetos vizinhos.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-emission-strength"
        },
        {
          "id": "material.override",
          "name": "Material",
          "kind": "enumeração",
          "group": "Cor",
          "unit": "",
          "help": "",
          "default": "Herdado da fonte",
          "domain": "Herdado da fonte | Substituído nesta instância",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Habilita os valores de material autorados no override do slot.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-material-override"
        },
        {
          "id": "lightmap.enabled",
          "name": "Receber lightmap indireto",
          "kind": "enumeração",
          "group": "Lightmap",
          "unit": "",
          "help": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "default": "Desativado",
          "domain": "Desativado | Lightmap indireto externo",
          "limitation": "RGB linear de irradiância; UV1 autoral; exige bindless. Sem bake, unwrap ou probes",
          "capability": "render.gi.lightmap",
          "invalidation": "desenho, material, residência de textura",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Lightmap externo de irradiância RGB linear em UV1; exige bindless. Sem bake interno.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-lightmap-enabled"
        },
        {
          "id": "surface.alpha_mode",
          "name": "Tipo de superfície",
          "kind": "enumeração",
          "group": "Superfície",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Opaco | Recorte | Mistura",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe tratamento opaco/máscara/blend no domínio do contrato.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-surface-alpha-mode"
        },
        {
          "id": "surface.sides",
          "name": "Faces",
          "kind": "enumeração",
          "group": "Superfície",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Face única | Face dupla",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Define tratamento de faces/lados do material.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-surface-sides"
        },
        {
          "id": "channels.roughness",
          "name": "Canal da rugosidade",
          "kind": "enumeração",
          "group": "Canais",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | R | G | B | A",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Seleciona qual canal da textura fornece o sinal indicado; confira a organização real da imagem importada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-channels-roughness"
        },
        {
          "id": "channels.metallic",
          "name": "Canal do metálico",
          "kind": "enumeração",
          "group": "Canais",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | R | G | B | A",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Seleciona qual canal da textura fornece o sinal indicado; confira a organização real da imagem importada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-channels-metallic"
        },
        {
          "id": "channels.occlusion",
          "name": "Canal da oclusão",
          "kind": "enumeração",
          "group": "Canais",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | R | G | B | A",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Seleciona qual canal da textura fornece o sinal indicado; confira a organização real da imagem importada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-channels-occlusion"
        },
        {
          "id": "channels.occlusion_source",
          "name": "Origem da oclusão",
          "kind": "enumeração",
          "group": "Canais",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Sem oclusão | No mapa metal/rugosidade | Textura própria",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Seleciona a origem de oclusão do material, separada do AO global.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-channels-occlusion-source"
        },
        {
          "id": "channels.normal_flip_y",
          "name": "Inverter Y da normal",
          "kind": "enumeração",
          "group": "Canais",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Não | Sim",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Inverte o eixo Y do normal map para ajustar convenção da textura.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-channels-normal-flip-y"
        },
        {
          "id": "channels.alpha_source",
          "name": "Origem do alfa",
          "kind": "enumeração",
          "group": "Canais",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Alfa da cor base | Sempre opaco | Luminância da cor base",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe a origem usada para alpha da superfície.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-channels-alpha-source"
        },
        {
          "id": "sampling.uv_set",
          "name": "Conjunto de UV",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | UV 0 | UV 1 | Mundo (triplanar)",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe o conjunto UV existente na geometria da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-uv-set"
        },
        {
          "id": "sampling.wrap",
          "name": "Repetição",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Repetir | Fixar na borda | Espelhar",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe repetição/clamp da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-wrap"
        },
        {
          "id": "sampling.filter",
          "name": "Filtro",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Linear | Vizinho mais próximo",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe filtragem da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-filter"
        },
        {
          "id": "sampling.base_color.uv_set",
          "name": "Cor base / UV",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | UV 0 | UV 1 | Mundo (triplanar)",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe o conjunto UV existente na geometria da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-uv-set"
        },
        {
          "id": "sampling.base_color.wrap",
          "name": "Cor base / Repetição",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Repetir | Fixar na borda | Espelhar",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe repetição/clamp da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-wrap"
        },
        {
          "id": "sampling.base_color.filter",
          "name": "Cor base / Filtro",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Linear | Vizinho mais próximo",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe filtragem da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-base-color-filter"
        },
        {
          "id": "sampling.normal.uv_set",
          "name": "Normal / UV",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | UV 0 | UV 1 | Mundo (triplanar)",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe o conjunto UV existente na geometria da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-uv-set"
        },
        {
          "id": "sampling.normal.wrap",
          "name": "Normal / Repetição",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Repetir | Fixar na borda | Espelhar",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe repetição/clamp da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-wrap"
        },
        {
          "id": "sampling.normal.filter",
          "name": "Normal / Filtro",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Linear | Vizinho mais próximo",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe filtragem da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-normal-filter"
        },
        {
          "id": "sampling.metallic_roughness.uv_set",
          "name": "Metal / rugosidade / UV",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | UV 0 | UV 1 | Mundo (triplanar)",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe o conjunto UV existente na geometria da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-uv-set"
        },
        {
          "id": "sampling.metallic_roughness.wrap",
          "name": "Metal / rugosidade / Repetição",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Repetir | Fixar na borda | Espelhar",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe repetição/clamp da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-wrap"
        },
        {
          "id": "sampling.metallic_roughness.filter",
          "name": "Metal / rugosidade / Filtro",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Linear | Vizinho mais próximo",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe filtragem da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-metallic-roughness-filter"
        },
        {
          "id": "sampling.emissive.uv_set",
          "name": "Emissão / UV",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | UV 0 | UV 1 | Mundo (triplanar)",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe o conjunto UV existente na geometria da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-uv-set"
        },
        {
          "id": "sampling.emissive.wrap",
          "name": "Emissão / Repetição",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Repetir | Fixar na borda | Espelhar",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe repetição/clamp da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-wrap"
        },
        {
          "id": "sampling.emissive.filter",
          "name": "Emissão / Filtro",
          "kind": "enumeração",
          "group": "Amostragem",
          "unit": "",
          "help": "",
          "default": "Herdar",
          "domain": "Herdar | Linear | Vizinho mais próximo",
          "limitation": "",
          "capability": "render.material.pbr",
          "invalidation": "desenho, material",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 1,
          "usage": "Escolhe filtragem da amostragem da textura/canal indicado. Não cria UVs ou recurso ausente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-mesh/#field-sampling-emissive-filter"
        }
      ],
      "guide": {
        "title": "Renderização e materiais",
        "route": "roadmap/renderizacao-e-materiais",
        "use": "Atribua geometria e recursos compatíveis; altere material/slot, luz ou ambiente e observe o resultado pela câmera. Valores autorais e política gráfica efetiva têm estados distintos.",
        "example": "Uma malha, câmera e luz: compare rugosidade/metalness no mesmo enquadramento, ou alcance/intensidade da luz sobre a malha. Material emissivo sozinho não equivale a uma luz iluminando objetos vizinhos.",
        "next": "Cookies e luz de área, GI/lightmap bake, unwrap/atlas e sondas continuam no registro de capacidades conforme o item. Recursos importados não comprovam consumo. Performance e compatibilidade Vulkan precisam de aceite por aparelho.",
        "purpose": "Geometria e material",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Renderização** / **Geometria** → **Malha**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.render.skinned_mesh",
      "name": "Malha deformável",
      "description": "Esqueleto e blend shapes da Malha",
      "family": "Renderização",
      "subfamily": "Geometria",
      "api": "SkinnedMesh",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-SkinnedMeshRenderer.html",
      "aliases": "SkinnedMeshRenderer Skeleton3D BlendShape Morph",
      "schemaVersion": 2,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.render.mesh",
          "message": "Adicione Malha a este objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "skinned_motion_vectors",
          "name": "Vetor de movimento da deformação",
          "kind": "booleano",
          "group": "Skin",
          "unit": "",
          "help": "A reprojeção temporal usa a pose anterior dos ossos e dos blend shapes, não só a do objeto",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "Transparência e água usam as máscaras de reatividade/composição, não vetor próprio",
          "capability": "render.motion_vectors",
          "invalidation": "desenho, mapa de sombra",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "A reprojeção temporal usa a pose anterior dos ossos e dos blend shapes, não só a do objeto",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-skinned-mesh/#field-skinned-motion-vectors"
        },
        {
          "id": "quality",
          "name": "Qualidade",
          "kind": "enumeração",
          "group": "Skin",
          "unit": "",
          "help": "Influências por vértice usadas na deformação (Skin Weights)",
          "default": "Automática",
          "domain": "Automática | 1 osso | 2 ossos | 4 ossos",
          "limitation": "Até 4 influências por vértice e 256 juntas por skin; morph targets não são importados",
          "capability": "render.skinning",
          "invalidation": "desenho, mapa de sombra",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Influências por vértice usadas na deformação (Skin Weights)",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-skinned-mesh/#field-quality"
        },
        {
          "id": "blend_shape_weight",
          "name": "Peso do blend shape",
          "kind": "número",
          "group": "Blend shapes",
          "unit": "%",
          "help": "0 é a forma base, 100 é o alvo inteiro",
          "default": "",
          "domain": "-1000 … 1000",
          "limitation": "Até 4 influências por vértice e 256 juntas por skin; morph targets não são importados",
          "capability": "render.skinning",
          "invalidation": "desenho, mapa de sombra",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "0 é a forma base, 100 é o alvo inteiro",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-skinned-mesh/#field-blend-shape-weight"
        }
      ],
      "guide": {
        "title": "Animação e deformação",
        "route": "roadmap/animacao",
        "use": "Atribua clipes/recursos e escolha reprodução. SkinnedMesh precisa dos dados de deformação compatíveis; um nome de clip ou blend shape não cria esse recurso.",
        "example": "Use um recurso com clipe real, compare Speed 0/1 e modos de repetição; confira deformação e bounds antes de usar culling.",
        "next": "Ampliar importação, composição, edição de clipes e aceite de deformação/motion vectors. Timeline de UI é outro sistema e continua parcial. Não pressupõe Animator completo.",
        "purpose": "Esqueleto e blend shapes da Malha",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Renderização** / **Geometria** → **Malha deformável**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.render.lod_group",
      "name": "LOD Group",
      "description": "Nível de detalhe pela altura na tela",
      "family": "Renderização",
      "subfamily": "Desempenho",
      "api": "LodGroup",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-LODGroup.html",
      "aliases": "LODGroup VisibilityRange Detalhe",
      "schemaVersion": 3,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "transition_0",
          "name": "Transição LOD 0",
          "kind": "número",
          "group": "Níveis",
          "unit": "%",
          "help": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "default": "60",
          "domain": "0.1 … 100",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-transition-0"
        },
        {
          "id": "transition_1",
          "name": "Transição LOD 1",
          "kind": "número",
          "group": "Níveis",
          "unit": "%",
          "help": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "default": "30",
          "domain": "0.1 … 100",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-transition-1"
        },
        {
          "id": "transition_2",
          "name": "Transição LOD 2",
          "kind": "número",
          "group": "Níveis",
          "unit": "%",
          "help": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "default": "10",
          "domain": "0.1 … 100",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-transition-2"
        },
        {
          "id": "transition_3",
          "name": "Transição LOD 3",
          "kind": "número",
          "group": "Níveis",
          "unit": "%",
          "help": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "default": "5",
          "domain": "0.1 … 100",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura na tela abaixo da qual este nível deixa de ser usado",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-transition-3"
        },
        {
          "id": "size",
          "name": "Tamanho",
          "kind": "número",
          "group": "Limites",
          "unit": "",
          "help": "Maior extensão do nível mais detalhado; Recalcular mede a malha",
          "default": "1",
          "domain": "0.001 … 1000000",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Maior extensão do nível mais detalhado; Recalcular mede a malha",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-size"
        },
        {
          "id": "fade_width_0",
          "name": "Largura do fade LOD 0",
          "kind": "número",
          "group": "Fade",
          "unit": "",
          "help": "Proporção do nível em que ele cruza com o próximo",
          "default": "0.2",
          "domain": "0 … 1",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Proporção do nível em que ele cruza com o próximo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-fade-width-0"
        },
        {
          "id": "fade_width_1",
          "name": "Largura do fade LOD 1",
          "kind": "número",
          "group": "Fade",
          "unit": "",
          "help": "Proporção do nível em que ele cruza com o próximo",
          "default": "0.2",
          "domain": "0 … 1",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Proporção do nível em que ele cruza com o próximo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-fade-width-1"
        },
        {
          "id": "fade_width_2",
          "name": "Largura do fade LOD 2",
          "kind": "número",
          "group": "Fade",
          "unit": "",
          "help": "Proporção do nível em que ele cruza com o próximo",
          "default": "0.2",
          "domain": "0 … 1",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Proporção do nível em que ele cruza com o próximo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-fade-width-2"
        },
        {
          "id": "fade_width_3",
          "name": "Largura do fade LOD 3",
          "kind": "número",
          "group": "Fade",
          "unit": "",
          "help": "Proporção do nível em que ele cruza com o próximo",
          "default": "0.2",
          "domain": "0 … 1",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Proporção do nível em que ele cruza com o próximo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-fade-width-3"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Níveis",
          "unit": "",
          "help": "Desligar libera os renderizadores do controle deste grupo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligar libera os renderizadores do controle deste grupo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-enabled"
        },
        {
          "id": "animate_cross_fading",
          "name": "Animate Cross-fading",
          "kind": "booleano",
          "group": "Fade",
          "unit": "",
          "help": "Troca por tempo em vez da faixa de largura",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Troca por tempo em vez da faixa de largura",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-animate-cross-fading"
        },
        {
          "id": "level_count",
          "name": "Níveis",
          "kind": "enumeração",
          "group": "Níveis",
          "unit": "",
          "help": "",
          "default": "3",
          "domain": "1 | 2 | 3 | 4",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Quantidade de níveis ativos de LOD. Atribua malhas/objetos por nível.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-level-count"
        },
        {
          "id": "fade_mode",
          "name": "Fade Mode",
          "kind": "enumeração",
          "group": "Fade",
          "unit": "",
          "help": "",
          "default": "Nenhum",
          "domain": "Nenhum | Cross Fade",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona a política de transição de LOD, no domínio indicado.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-fade-mode"
        },
        {
          "id": "force_level",
          "name": "Forçar nível",
          "kind": "enumeração",
          "group": "Execução",
          "unit": "",
          "help": "Estado de execução: 0 automático, n força o LOD n-1",
          "default": "Automático",
          "domain": "Automático | LOD 0 | LOD 1 | LOD 2 | LOD 3",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Estado de execução: 0 automático, n força o LOD n-1",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-force-level"
        },
        {
          "id": "level_0",
          "name": "Objetos LOD 0",
          "kind": "referência",
          "group": "Níveis",
          "unit": "",
          "help": "",
          "default": "Nenhum",
          "domain": "qualquer objeto · abaixo deste objeto",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/recurso de renderização atribuído a este nível de LOD; referência ausente não fabrica geometria.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-level-0"
        },
        {
          "id": "level_1",
          "name": "Objetos LOD 1",
          "kind": "referência",
          "group": "Níveis",
          "unit": "",
          "help": "",
          "default": "Nenhum",
          "domain": "qualquer objeto · abaixo deste objeto",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/recurso de renderização atribuído a este nível de LOD; referência ausente não fabrica geometria.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-level-1"
        },
        {
          "id": "level_2",
          "name": "Objetos LOD 2",
          "kind": "referência",
          "group": "Níveis",
          "unit": "",
          "help": "",
          "default": "Nenhum",
          "domain": "qualquer objeto · abaixo deste objeto",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/recurso de renderização atribuído a este nível de LOD; referência ausente não fabrica geometria.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-level-2"
        },
        {
          "id": "level_3",
          "name": "Objetos LOD 3",
          "kind": "referência",
          "group": "Níveis",
          "unit": "",
          "help": "",
          "default": "Nenhum",
          "domain": "qualquer objeto · abaixo deste objeto",
          "limitation": "Níveis são objetos do autor ou da convenção _LOD<n>; simplificação automática de malha ainda não existe",
          "capability": "render.lod.group",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/recurso de renderização atribuído a este nível de LOD; referência ausente não fabrica geometria.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-lod-group/#field-level-3"
        }
      ],
      "guide": {
        "title": "Renderização e materiais",
        "route": "roadmap/renderizacao-e-materiais",
        "use": "Atribua geometria e recursos compatíveis; altere material/slot, luz ou ambiente e observe o resultado pela câmera. Valores autorais e política gráfica efetiva têm estados distintos.",
        "example": "Uma malha, câmera e luz: compare rugosidade/metalness no mesmo enquadramento, ou alcance/intensidade da luz sobre a malha. Material emissivo sozinho não equivale a uma luz iluminando objetos vizinhos.",
        "next": "Cookies e luz de área, GI/lightmap bake, unwrap/atlas e sondas continuam no registro de capacidades conforme o item. Recursos importados não comprovam consumo. Performance e compatibilidade Vulkan precisam de aceite por aparelho.",
        "purpose": "Nível de detalhe pela altura na tela",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Renderização** / **Desempenho** → **LOD Group**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.render.environment",
      "name": "Ambiente",
      "description": "Céu, atmosfera, neblina e pós globais ou por volume",
      "family": "Renderização",
      "subfamily": "Ambiente",
      "api": "EnvironmentVolume",
      "reference": "https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@17.0/manual/Volumes.html",
      "aliases": "Volume WorldEnvironment Skybox Fog PostProcess",
      "schemaVersion": 12,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "priority",
          "name": "Prioridade",
          "kind": "número",
          "group": "Geral",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Prioridade entre candidatos do mesmo sistema; compare o consumidor efetivo, não só o número no Inspector.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-priority"
        },
        {
          "id": "sky_zenith.r",
          "name": "Zênite R",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.025",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal R da cor sky_zenith no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sky-zenith-r"
        },
        {
          "id": "sky_zenith.g",
          "name": "Zênite G",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal G da cor sky_zenith no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sky-zenith-g"
        },
        {
          "id": "sky_zenith.b",
          "name": "Zênite B",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.32",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal B da cor sky_zenith no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sky-zenith-b"
        },
        {
          "id": "sky_horizon.r",
          "name": "Horizonte R",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.28",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal R da cor sky_horizon no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sky-horizon-r"
        },
        {
          "id": "sky_horizon.g",
          "name": "Horizonte G",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.42",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal G da cor sky_horizon no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sky-horizon-g"
        },
        {
          "id": "sky_horizon.b",
          "name": "Horizonte B",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.62",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal B da cor sky_horizon no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sky-horizon-b"
        },
        {
          "id": "ground.r",
          "name": "Chão R",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.11",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal R da cor ground no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ground-r"
        },
        {
          "id": "ground.g",
          "name": "Chão G",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.12",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal G da cor ground no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ground-g"
        },
        {
          "id": "ground.b",
          "name": "Chão B",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "0.14",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal B da cor ground no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ground-b"
        },
        {
          "id": "atmosphere",
          "name": "Força atmosférica",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Quantidade da contribuição atmosférica no modelo de céu selecionado.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-atmosphere"
        },
        {
          "id": "sun_disk_degrees",
          "name": "Diâmetro do sol",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "°",
          "help": "",
          "default": "0.53",
          "domain": "0.05 … 10",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Tamanho angular do disco solar desenhado no céu.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sun-disk-degrees"
        },
        {
          "id": "sun_disk_intensity",
          "name": "Brilho do disco solar",
          "kind": "número",
          "group": "Atmosfera",
          "unit": "",
          "help": "",
          "default": "8",
          "domain": "0 … 100",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Brilho do disco solar; não substitui a intensidade de uma luz direcional.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sun-disk-intensity"
        },
        {
          "id": "fog_color.r",
          "name": "Neblina R",
          "kind": "número",
          "group": "Neblina",
          "unit": "",
          "help": "",
          "default": "0.58",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal R da cor fog_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-color-r"
        },
        {
          "id": "fog_color.g",
          "name": "Neblina G",
          "kind": "número",
          "group": "Neblina",
          "unit": "",
          "help": "",
          "default": "0.67",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal G da cor fog_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-color-g"
        },
        {
          "id": "fog_color.b",
          "name": "Neblina B",
          "kind": "número",
          "group": "Neblina",
          "unit": "",
          "help": "",
          "default": "0.76",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Canal B da cor fog_color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-color-b"
        },
        {
          "id": "fog_light_energy",
          "name": "Energia da neblina",
          "kind": "número",
          "group": "Neblina",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0 … 65504",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Energia de luz na neblina conforme o modelo de fog.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-light-energy"
        },
        {
          "id": "fog_density",
          "name": "Densidade",
          "kind": "número",
          "group": "Neblina",
          "unit": "1/m",
          "help": "",
          "default": "0.008",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Densidade da neblina; aumentar reduz visibilidade ao longo do percurso.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-density"
        },
        {
          "id": "fog_start",
          "name": "Início",
          "kind": "número",
          "group": "Neblina",
          "unit": "m",
          "help": "",
          "default": "8",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Distância a partir da qual a neblina começa.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-start"
        },
        {
          "id": "fog_base_height",
          "name": "Altura base",
          "kind": "número",
          "group": "Neblina",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura de referência da neblina de altura.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-base-height"
        },
        {
          "id": "fog_height_falloff",
          "name": "Decaimento por altura",
          "kind": "número",
          "group": "Neblina",
          "unit": "1/m",
          "help": "",
          "default": "0",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Queda da densidade conforme altura.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog-height-falloff"
        },
        {
          "id": "exposure_ev",
          "name": "Compensação",
          "kind": "número",
          "group": "Exposição",
          "unit": "EV",
          "help": "",
          "default": "0",
          "domain": "-16 … 16",
          "limitation": "",
          "capability": "render.post.tonemap",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Exposição manual em EV antes do tonemapping; compare com auto exposição desligada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-exposure-ev"
        },
        {
          "id": "bloom_threshold",
          "name": "Limiar do bloom",
          "kind": "número",
          "group": "Pós",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 64",
          "limitation": "",
          "capability": "render.post.bloom",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limiar de brilho que participa do bloom.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-bloom-threshold"
        },
        {
          "id": "bloom_intensity",
          "name": "Intensidade do bloom",
          "kind": "número",
          "group": "Pós",
          "unit": "",
          "help": "",
          "default": "0.1",
          "domain": "0 … 2",
          "limitation": "",
          "capability": "render.post.bloom",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Intensidade do bloom habilitado.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-bloom-intensity"
        },
        {
          "id": "contrast",
          "name": "Contraste",
          "kind": "número",
          "group": "Pós",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0.5 … 2",
          "limitation": "",
          "capability": "render.post.tonemap",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Contraste do pós-processamento.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-contrast"
        },
        {
          "id": "saturation",
          "name": "Saturação",
          "kind": "número",
          "group": "Pós",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 2",
          "limitation": "",
          "capability": "render.post.tonemap",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Saturação do pós-processamento.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-saturation"
        },
        {
          "id": "vignette_intensity",
          "name": "Intensidade da vinheta",
          "kind": "número",
          "group": "Pós",
          "unit": "",
          "help": "",
          "default": "0.18",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.post.tonemap",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Força da vinheta habilitada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-vignette-intensity"
        },
        {
          "id": "film_grain_intensity",
          "name": "Intensidade do grão",
          "kind": "número",
          "group": "Pós",
          "unit": "",
          "help": "",
          "default": "0.05",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.post.film_grain",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Força do grain habilitado.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-film-grain-intensity"
        },
        {
          "id": "ambient_occlusion_radius",
          "name": "Raio",
          "kind": "número",
          "group": "Oclusão ambiente",
          "unit": "m",
          "help": "",
          "default": "1",
          "domain": "0.05 … 10",
          "limitation": "",
          "capability": "render.post.ambient_occlusion",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio de amostragem do AO global.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ambient-occlusion-radius"
        },
        {
          "id": "ambient_occlusion_intensity",
          "name": "Intensidade",
          "kind": "número",
          "group": "Oclusão ambiente",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 4",
          "limitation": "",
          "capability": "render.post.ambient_occlusion",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Peso visual do AO global.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ambient-occlusion-intensity"
        },
        {
          "id": "ambient_occlusion_power",
          "name": "Potência",
          "kind": "número",
          "group": "Oclusão ambiente",
          "unit": "",
          "help": "",
          "default": "1.5",
          "domain": "0.1 … 4",
          "limitation": "",
          "capability": "render.post.ambient_occlusion",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Curva de contraste do AO.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ambient-occlusion-power"
        },
        {
          "id": "ambient_occlusion_bias",
          "name": "Viés",
          "kind": "número",
          "group": "Oclusão ambiente",
          "unit": "m",
          "help": "",
          "default": "0.02",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.post.ambient_occlusion",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Bias para evitar auto oclusão excessiva.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ambient-occlusion-bias"
        },
        {
          "id": "weight",
          "name": "Peso",
          "kind": "número",
          "group": "Volume",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Peso da mistura do volume, combinado com shape, distância e prioridade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-weight"
        },
        {
          "id": "blend_distance",
          "name": "Distância de mistura",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "0 … 100000",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Distância de mistura na borda do volume de ambiente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-blend-distance"
        },
        {
          "id": "box_size.x",
          "name": "Tamanho X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "10",
          "domain": "0.01 … 100000",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Dimensão da caixa do volume de ambiente no eixo indicado; apenas no shape correspondente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-box-size-x"
        },
        {
          "id": "box_size.y",
          "name": "Tamanho Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "10",
          "domain": "0.01 … 100000",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Dimensão da caixa do volume de ambiente no eixo indicado; apenas no shape correspondente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-box-size-y"
        },
        {
          "id": "box_size.z",
          "name": "Tamanho Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "10",
          "domain": "0.01 … 100000",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Dimensão da caixa do volume de ambiente no eixo indicado; apenas no shape correspondente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-box-size-z"
        },
        {
          "id": "sphere_radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "5",
          "domain": "0.01 … 100000",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio do volume esférico, quando esse shape está selecionado.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sphere-radius"
        },
        {
          "id": "indirect_diffuse",
          "name": "Difuso indireto",
          "kind": "número",
          "group": "Luz indireta",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0 … 4",
          "limitation": "",
          "capability": "render.ambient.hemispheric",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala da iluminação indireta difusa disponível; não calcula GI bake.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-indirect-diffuse"
        },
        {
          "id": "indirect_specular",
          "name": "Reflexo indireto",
          "kind": "número",
          "group": "Luz indireta",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0 … 4",
          "limitation": "",
          "capability": "render.ambient.specular",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala do reflexo especular do ambiente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-indirect-specular"
        },
        {
          "id": "physical_sky_intensity",
          "name": "Intensidade",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0 … 16",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplica a energia do céu físico.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-physical-sky-intensity"
        },
        {
          "id": "air_density",
          "name": "Densidade do ar",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0 … 8",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Densidade do ar usada pelo céu físico.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-air-density"
        },
        {
          "id": "aerosol_density",
          "name": "Densidade de aerossóis",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0 … 8",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Densidade do aerosol usada pelo céu físico.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-aerosol-density"
        },
        {
          "id": "aerosol_anisotropy",
          "name": "Anisotropia dos aerossóis",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "g",
          "help": "",
          "default": "0.76",
          "domain": "0 … 0.95",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Anisotropia da dispersão de aerosol.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-aerosol-anisotropy"
        },
        {
          "id": "planet_radius_km",
          "name": "Raio do planeta",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "km",
          "help": "",
          "default": "6371",
          "domain": "1 … 100000",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio do planeta do modelo atmosférico em km.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-planet-radius-km"
        },
        {
          "id": "observer_height_km",
          "name": "Altura do observador",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "km",
          "help": "",
          "default": "0.002",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura do observador atmosférico em km.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-observer-height-km"
        },
        {
          "id": "rayleigh_scale_height_km",
          "name": "Escala Rayleigh",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "km",
          "help": "",
          "default": "8",
          "domain": "0.1 … 100",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura característica da dispersão Rayleigh.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-rayleigh-scale-height-km"
        },
        {
          "id": "aerosol_scale_height_km",
          "name": "Escala de aerossóis",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "km",
          "help": "",
          "default": "1.2",
          "domain": "0.05 … 50",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura característica do aerosol.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-aerosol-scale-height-km"
        },
        {
          "id": "atmosphere_height_km",
          "name": "Altura da atmosfera",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "km",
          "help": "",
          "default": "100",
          "domain": "1 … 1000",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Espessura da atmosfera do modelo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-atmosphere-height-km"
        },
        {
          "id": "ground_albedo",
          "name": "Albedo médio do solo",
          "kind": "número",
          "group": "Atmosfera física",
          "unit": "",
          "help": "",
          "default": "0.1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Refletância do chão do céu físico.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ground-albedo"
        },
        {
          "id": "auto_exposure_min_ev",
          "name": "EV mínimo",
          "kind": "número",
          "group": "Exposição",
          "unit": "EV",
          "help": "",
          "default": "-8",
          "domain": "-16 … 16",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite inferior de exposição automática.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-min-ev"
        },
        {
          "id": "auto_exposure_max_ev",
          "name": "EV máximo",
          "kind": "número",
          "group": "Exposição",
          "unit": "EV",
          "help": "",
          "default": "8",
          "domain": "-16 … 16",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite superior de exposição automática.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-max-ev"
        },
        {
          "id": "auto_exposure_low_percent",
          "name": "Corte baixo",
          "kind": "número",
          "group": "Exposição",
          "unit": "",
          "help": "",
          "default": "0.05",
          "domain": "0 … 1",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Percentil inferior do histograma para auto exposição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-low-percent"
        },
        {
          "id": "auto_exposure_high_percent",
          "name": "Corte alto",
          "kind": "número",
          "group": "Exposição",
          "unit": "",
          "help": "",
          "default": "0.95",
          "domain": "0 … 1",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Percentil superior do histograma para auto exposição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-high-percent"
        },
        {
          "id": "auto_exposure_target_grey",
          "name": "Cinza alvo",
          "kind": "número",
          "group": "Exposição",
          "unit": "",
          "help": "",
          "default": "0.18",
          "domain": "0.01 … 1",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Nível cinza alvo da medição automática.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-target-grey"
        },
        {
          "id": "auto_exposure_speed_up",
          "name": "Velocidade ao escurecer",
          "kind": "número",
          "group": "Exposição",
          "unit": "EV/s",
          "help": "",
          "default": "2",
          "domain": "0.01 … 20",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade de adaptação ao elevar exposição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-speed-up"
        },
        {
          "id": "auto_exposure_speed_down",
          "name": "Velocidade ao clarear",
          "kind": "número",
          "group": "Exposição",
          "unit": "EV/s",
          "help": "",
          "default": "3",
          "domain": "0.01 … 20",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade de adaptação ao reduzir exposição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-speed-down"
        },
        {
          "id": "hdri_rotation_degrees",
          "name": "Rotação HDRI",
          "kind": "número",
          "group": "HDRI",
          "unit": "°",
          "help": "",
          "default": "0",
          "domain": "-360 … 360",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Gira a orientação do ambiente HDRI em graus.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-hdri-rotation-degrees"
        },
        {
          "id": "hdri_exposure_ev",
          "name": "Exposição HDRI",
          "kind": "número",
          "group": "HDRI",
          "unit": "EV",
          "help": "",
          "default": "0",
          "domain": "-16 … 16",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Exposição do recurso HDRI em EV.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-hdri-exposure-ev"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Geral",
          "unit": "",
          "help": "Participa da seleção por prioridade",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participa da seleção por prioridade",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-enabled"
        },
        {
          "id": "fog",
          "name": "Neblina",
          "kind": "booleano",
          "group": "Neblina",
          "unit": "",
          "help": "Aplica neblina exponencial uniforme ou com decaimento por altura",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.environment.fog",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica neblina exponencial uniforme ou com decaimento por altura",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-fog"
        },
        {
          "id": "post",
          "name": "Pós-processamento",
          "kind": "booleano",
          "group": "Pós",
          "unit": "",
          "help": "Ativa os overrides autorais desta cena",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.post.tonemap",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa os overrides autorais desta cena",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-post"
        },
        {
          "id": "auto_exposure",
          "name": "Exposição automática",
          "kind": "booleano",
          "group": "Exposição",
          "unit": "",
          "help": "Mede luminância HDR e adapta a exposição por câmera",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Mede luminância HDR e adapta a exposição por câmera",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure"
        },
        {
          "id": "auto_exposure_center_weighted",
          "name": "Peso central",
          "kind": "booleano",
          "group": "Exposição",
          "unit": "",
          "help": "Prioriza o centro da imagem na medição",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "Histograma e adaptação por vista; o EV fica restrito à faixa autoral",
          "capability": "render.post.auto_exposure",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Prioriza o centro da imagem na medição",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-auto-exposure-center-weighted"
        },
        {
          "id": "bloom",
          "name": "Bloom",
          "kind": "booleano",
          "group": "Pós",
          "unit": "",
          "help": "Espalha altas luzes antes do tonemap",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.post.bloom",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Espalha altas luzes antes do tonemap",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-bloom"
        },
        {
          "id": "vignette",
          "name": "Vinheta",
          "kind": "booleano",
          "group": "Pós",
          "unit": "",
          "help": "Escurece gradualmente as bordas",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.post.tonemap",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escurece gradualmente as bordas",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-vignette"
        },
        {
          "id": "film_grain",
          "name": "Grão de filme",
          "kind": "booleano",
          "group": "Pós",
          "unit": "",
          "help": "Adiciona grão sensível à luminância depois da resolução temporal",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.post.film_grain",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Adiciona grão sensível à luminância depois da resolução temporal",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-film-grain"
        },
        {
          "id": "ambient_occlusion",
          "name": "Oclusão ambiente",
          "kind": "booleano",
          "group": "Oclusão ambiente",
          "unit": "",
          "help": "Escurece contatos e concavidades a partir da profundidade da câmera",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.post.ambient_occlusion",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escurece contatos e concavidades a partir da profundidade da câmera",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-ambient-occlusion"
        },
        {
          "id": "override_sky",
          "name": "Sobrescrever céu",
          "kind": "booleano",
          "group": "Volume",
          "unit": "",
          "help": "Participa da mistura de céu e atmosfera",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participa da mistura de céu e atmosfera",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-override-sky"
        },
        {
          "id": "override_fog",
          "name": "Sobrescrever neblina",
          "kind": "booleano",
          "group": "Volume",
          "unit": "",
          "help": "Participa da mistura de neblina",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participa da mistura de neblina",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-override-fog"
        },
        {
          "id": "override_post",
          "name": "Sobrescrever pós",
          "kind": "booleano",
          "group": "Volume",
          "unit": "",
          "help": "Participa da mistura de exposição e pós",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participa da mistura de exposição e pós",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-override-post"
        },
        {
          "id": "override_indirect",
          "name": "Sobrescrever luz indireta",
          "kind": "booleano",
          "group": "Volume",
          "unit": "",
          "help": "Participa da mistura de difuso e reflexo indiretos",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participa da mistura de difuso e reflexo indiretos",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-override-indirect"
        },
        {
          "id": "physical_atmosphere_high_quality",
          "name": "Alta qualidade",
          "kind": "booleano",
          "group": "Atmosfera física",
          "unit": "",
          "help": "Aumenta as amostras de vista e luz; custa mais GPU",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.environment.physical_atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aumenta as amostras de vista e luz; custa mais GPU",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-physical-atmosphere-high-quality"
        },
        {
          "id": "sky",
          "name": "Céu",
          "kind": "enumeração",
          "group": "Atmosfera",
          "unit": "",
          "help": "Fonte visual do céu",
          "default": "Atmosfera",
          "domain": "HDRI | Atmosfera | Atmosfera física",
          "limitation": "",
          "capability": "render.environment.atmosphere",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fonte visual do céu",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-sky"
        },
        {
          "id": "tone_mapper",
          "name": "Tonemapping",
          "kind": "enumeração",
          "group": "Pós",
          "unit": "",
          "help": "Curva aplicada ao HDR antes da saída",
          "default": "ACES",
          "domain": "Reinhard | ACES | AgX",
          "limitation": "",
          "capability": "render.post.tonemap",
          "invalidation": "desenho, política resolvida",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Curva aplicada ao HDR antes da saída",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-tone-mapper"
        },
        {
          "id": "volume_shape",
          "name": "Modo",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Global afeta toda vista; formas usam o Transform do objeto",
          "default": "Global",
          "domain": "Global | Caixa | Esfera",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Global afeta toda vista; formas usam o Transform do objeto",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-volume-shape"
        },
        {
          "id": "volume_layer",
          "name": "Camada",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Filtro consultado pela câmera",
          "default": "Ambiente 0",
          "domain": "Ambiente 0 | Ambiente 1 | Ambiente 2 | Ambiente 3 | Ambiente 4 | Ambiente 5 | Ambiente 6 | Ambiente 7",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho, política resolvida",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Filtro consultado pela câmera",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-environment/#field-volume-layer"
        }
      ],
      "guide": {
        "title": "Renderização e materiais",
        "route": "roadmap/renderizacao-e-materiais",
        "use": "Atribua geometria e recursos compatíveis; altere material/slot, luz ou ambiente e observe o resultado pela câmera. Valores autorais e política gráfica efetiva têm estados distintos.",
        "example": "Uma malha, câmera e luz: compare rugosidade/metalness no mesmo enquadramento, ou alcance/intensidade da luz sobre a malha. Material emissivo sozinho não equivale a uma luz iluminando objetos vizinhos.",
        "next": "Cookies e luz de área, GI/lightmap bake, unwrap/atlas e sondas continuam no registro de capacidades conforme o item. Recursos importados não comprovam consumo. Performance e compatibilidade Vulkan precisam de aceite por aparelho.",
        "purpose": "Céu, atmosfera, neblina e pós globais ou por volume",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Renderização** / **Ambiente** → **Ambiente**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.render.light",
      "name": "Luz",
      "description": "Direcional, pontual ou spot",
      "family": "Luz",
      "subfamily": "Luzes",
      "api": "Light",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-Light.html",
      "aliases": "Light DirectionalLight3D OmniLight3D SpotLight3D Point Spot Sol",
      "schemaVersion": 3,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "color.r",
          "name": "Cor R",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": true,
          "slots": 0,
          "usage": "Canal R da cor color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-color-r"
        },
        {
          "id": "color.g",
          "name": "Cor G",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": true,
          "slots": 0,
          "usage": "Canal G da cor color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-color-g"
        },
        {
          "id": "color.b",
          "name": "Cor B",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": true,
          "slots": 0,
          "usage": "Canal B da cor color no consumidor correspondente. Combine os três canais e intensidade quando existente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-color-b"
        },
        {
          "id": "color_temperature",
          "name": "Temperatura",
          "kind": "número",
          "group": "Emissão",
          "unit": "K",
          "help": "Multiplicada pela cor linear; D65 é 6500 K",
          "default": "6500",
          "domain": "1667 … 25000",
          "limitation": "",
          "capability": "render.light.temperature",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplicada pela cor linear; D65 é 6500 K",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-color-temperature"
        },
        {
          "id": "intensity",
          "name": "Intensidade",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "1000",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": true,
          "slots": 0,
          "usage": "Energia da luz na unidade selecionada; compare com distância/alcance constantes.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-intensity"
        },
        {
          "id": "range",
          "name": "Alcance",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "10",
          "domain": "0.01 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Alcance de contribuição da luz pontual/spot.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-range"
        },
        {
          "id": "inner_angle",
          "name": "Meio-cone interno",
          "kind": "número",
          "group": "Volume",
          "unit": "°",
          "help": "",
          "default": "20",
          "domain": "0 … 89",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ângulo interno do cone spot; região de contribuição central.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-inner-angle"
        },
        {
          "id": "outer_angle",
          "name": "Meio-cone externo",
          "kind": "número",
          "group": "Volume",
          "unit": "°",
          "help": "",
          "default": "35",
          "domain": "0 … 89",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ângulo externo do cone spot; limite de contribuição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-outer-angle"
        },
        {
          "id": "shadow_strength",
          "name": "Força da sombra",
          "kind": "número",
          "group": "Sombra",
          "unit": "",
          "help": "1 é sombra opaca; abaixo disso a luz vaza pelo oclusor",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "Atlas em quadtree: spot ocupa um mapa, pontual seis faces",
          "capability": "render.shadow.punctual",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "1 é sombra opaca; abaixo disso a luz vaza pelo oclusor",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-shadow-strength"
        },
        {
          "id": "shadow_bias",
          "name": "Desvio",
          "kind": "número",
          "group": "Sombra",
          "unit": "texel",
          "help": "Afasta a comparação de profundidade e some com a acne",
          "default": "0.05",
          "domain": "0 … 2",
          "limitation": "Atlas em quadtree: spot ocupa um mapa, pontual seis faces",
          "capability": "render.shadow.punctual",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Afasta a comparação de profundidade e some com a acne",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-shadow-bias"
        },
        {
          "id": "shadow_normal_bias",
          "name": "Desvio na normal",
          "kind": "número",
          "group": "Sombra",
          "unit": "texel",
          "help": "Desloca a amostra ao longo da normal; some com o serrilhado da borda",
          "default": "0.4",
          "domain": "0 … 2",
          "limitation": "Atlas em quadtree: spot ocupa um mapa, pontual seis faces",
          "capability": "render.shadow.punctual",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desloca a amostra ao longo da normal; some com o serrilhado da borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-shadow-normal-bias"
        },
        {
          "id": "shadow_near_plane",
          "name": "Plano próximo da sombra",
          "kind": "número",
          "group": "Sombra",
          "unit": "m",
          "help": "Perto demais perde precisão; longe demais corta o que está junto da lâmpada",
          "default": "0.2",
          "domain": "0.01 … 10",
          "limitation": "Atlas em quadtree: spot ocupa um mapa, pontual seis faces",
          "capability": "render.shadow.punctual",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Perto demais perde precisão; longe demais corta o que está junto da lâmpada",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-shadow-near-plane"
        },
        {
          "id": "enabled",
          "name": "Acesa",
          "kind": "booleano",
          "group": "Geral",
          "unit": "",
          "help": "Ativa a contribuição desta luz",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa a contribuição desta luz",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-enabled"
        },
        {
          "id": "use_color_temperature",
          "name": "Filtro por temperatura",
          "kind": "booleano",
          "group": "Emissão",
          "unit": "",
          "help": "Multiplica a cor pela temperatura de corpo negro",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "render.light.temperature",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplica a cor pela temperatura de corpo negro",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-use-color-temperature"
        },
        {
          "id": "kind",
          "name": "Modalidade",
          "kind": "enumeração",
          "group": "Geral",
          "unit": "",
          "help": "Tipo de emissão da luz",
          "default": "Pontual",
          "domain": "Direcional | Pontual | Spot",
          "limitation": "",
          "capability": "",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Tipo de emissão da luz",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-kind"
        },
        {
          "id": "unit",
          "name": "Unidade",
          "kind": "enumeração",
          "group": "Emissão",
          "unit": "",
          "help": "Direcional usa lux; luz local usa candela ou lúmen",
          "default": "Lux / lúmen",
          "domain": "Interna (legada) | Lux / candela | Lux / lúmen",
          "limitation": "",
          "capability": "render.light.photometric",
          "invalidation": "seleção de luzes",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direcional usa lux; luz local usa candela ou lúmen",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-unit"
        },
        {
          "id": "shadow_mode",
          "name": "Sombra",
          "kind": "enumeração",
          "group": "Sombra",
          "unit": "",
          "help": "Projeção de sombra desta luz no atlas local",
          "default": "Nenhuma",
          "domain": "Nenhuma | Dura | Suave",
          "limitation": "Atlas em quadtree: spot ocupa um mapa, pontual seis faces",
          "capability": "render.shadow.punctual",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Projeção de sombra desta luz no atlas local",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-shadow-mode"
        },
        {
          "id": "shadow_resolution",
          "name": "Resolução da sombra",
          "kind": "enumeração",
          "group": "Sombra",
          "unit": "",
          "help": "Automática escolhe pelo tamanho da luz na tela",
          "default": "Automática",
          "domain": "Automática | Baixa | Média | Alta | Muito alta",
          "limitation": "Atlas em quadtree: spot ocupa um mapa, pontual seis faces",
          "capability": "render.shadow.punctual",
          "invalidation": "seleção de luzes",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Automática escolhe pelo tamanho da luz na tela",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-render-light/#field-shadow-resolution"
        }
      ],
      "guide": {
        "title": "Renderização e materiais",
        "route": "roadmap/renderizacao-e-materiais",
        "use": "Atribua geometria e recursos compatíveis; altere material/slot, luz ou ambiente e observe o resultado pela câmera. Valores autorais e política gráfica efetiva têm estados distintos.",
        "example": "Uma malha, câmera e luz: compare rugosidade/metalness no mesmo enquadramento, ou alcance/intensidade da luz sobre a malha. Material emissivo sozinho não equivale a uma luz iluminando objetos vizinhos.",
        "next": "Cookies e luz de área, GI/lightmap bake, unwrap/atlas e sondas continuam no registro de capacidades conforme o item. Recursos importados não comprovam consumo. Performance e compatibilidade Vulkan precisam de aceite por aparelho.",
        "purpose": "Direcional, pontual ou spot",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Luz** / **Luzes** → **Luz**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.camera",
      "name": "Câmera",
      "description": "Projeção e enquadramento",
      "family": "Câmera",
      "subfamily": "Projeção",
      "api": "Camera",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-Camera.html",
      "aliases": "Camera Camera3D Perspectiva Ortografica",
      "schemaVersion": 3,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "vertical_fov",
          "name": "Campo vertical",
          "kind": "número",
          "group": "Lente",
          "unit": "°",
          "help": "",
          "default": "60",
          "domain": "1 … 170",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": true,
          "slots": 0,
          "usage": "Campo de visão vertical da perspectiva, em graus.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-vertical-fov"
        },
        {
          "id": "near_plane",
          "name": "Próximo",
          "kind": "número",
          "group": "Lente",
          "unit": "m",
          "help": "",
          "default": "0.1",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Plano de corte próximo; valor exageradamente baixo reduz precisão de depth.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-near-plane"
        },
        {
          "id": "far_plane",
          "name": "Distante",
          "kind": "número",
          "group": "Lente",
          "unit": "m",
          "help": "",
          "default": "2000",
          "domain": "0.01 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Plano de corte distante; objetos além ficam cortados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-far-plane"
        },
        {
          "id": "priority",
          "name": "Prioridade",
          "kind": "número",
          "group": "Saída",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Prioridade entre candidatos do mesmo sistema; compare o consumidor efetivo, não só o número no Inspector.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-priority"
        },
        {
          "id": "orthographic_half_height",
          "name": "Meia altura",
          "kind": "número",
          "group": "Lente",
          "unit": "m",
          "help": "Metade da altura visível. Zoom altera esta extensão.",
          "default": "5",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": true,
          "slots": 0,
          "usage": "Metade da altura visível. Zoom altera esta extensão.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-orthographic-half-height"
        },
        {
          "id": "enabled",
          "name": "Usar no Play",
          "kind": "booleano",
          "group": "Saída",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-enabled"
        },
        {
          "id": "projection",
          "name": "Projeção",
          "kind": "enumeração",
          "group": "Lente",
          "unit": "",
          "help": "",
          "default": "Perspectiva",
          "domain": "Perspectiva | Ortográfica",
          "limitation": "",
          "capability": "",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona perspectiva ou ortográfica.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-projection"
        },
        {
          "id": "environment_mask",
          "name": "Ambientes",
          "kind": "enumeração",
          "group": "Saída",
          "unit": "",
          "help": "Volumes que esta câmera consulta",
          "default": "Todos os ambientes",
          "domain": "Todos os ambientes | Ambiente 0 | Ambiente 1 | Ambiente 2 | Ambiente 3 | Ambiente 4 | Ambiente 5 | Ambiente 6 | Ambiente 7",
          "limitation": "",
          "capability": "render.environment.volumes",
          "invalidation": "desenho",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Volumes que esta câmera consulta",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera/#field-environment-mask"
        }
      ],
      "guide": {
        "title": "Câmera e navegação",
        "route": "roadmap/camera-e-navegacao",
        "use": "Crie uma câmera ativa; escolha projeção e planos. Olhar recebe entrada e Acompanhar alvo recebe uma referência. Não use a pose da câmera como fonte implícita de física do jogador.",
        "example": "Atribua um alvo a Acompanhar alvo e mova-o. Compare Damping 0 com um tempo maior. Teste perspectiva/ortográfica com a mesma malha enquadrada.",
        "next": "Consolidar composição de rigs, apresentação e aceite de input/viewports. Pareamento geral de jogadores/câmeras pertence também ao roadmap UI R4/R9; não há data por método.",
        "purpose": "Projeção e enquadramento",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Câmera** / **Projeção** → **Câmera**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.camera.look",
      "name": "Olhar",
      "description": "Rotação local da câmera por entrada ou script",
      "family": "Câmera",
      "subfamily": "Controle",
      "api": "CameraLook",
      "reference": "https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachinePanTilt.html",
      "aliases": "MouseLook CameraController PanTilt InputAxisController",
      "schemaVersion": 2,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.camera",
          "message": "Adicione Câmera a este objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "yaw_sensitivity",
          "name": "Sensibilidade horizontal graus/tela",
          "kind": "número",
          "group": "Sensibilidade",
          "unit": "°",
          "help": "",
          "default": "300",
          "domain": "0 … 720",
          "limitation": "",
          "capability": "",
          "invalidation": "entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ganho horizontal do olhar.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-look/#field-yaw-sensitivity"
        },
        {
          "id": "pitch_sensitivity",
          "name": "Sensibilidade vertical graus/tela",
          "kind": "número",
          "group": "Sensibilidade",
          "unit": "°",
          "help": "",
          "default": "195",
          "domain": "0 … 720",
          "limitation": "",
          "capability": "",
          "invalidation": "entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ganho vertical do olhar.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-look/#field-pitch-sensitivity"
        },
        {
          "id": "pitch_limit",
          "name": "Limite vertical graus",
          "kind": "número",
          "group": "Limites",
          "unit": "°",
          "help": "",
          "default": "83",
          "domain": "1 … 89",
          "limitation": "",
          "capability": "",
          "invalidation": "entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limita inclinação vertical da câmera.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-look/#field-pitch-limit"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Controle",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "entrada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-look/#field-enabled"
        }
      ],
      "guide": {
        "title": "Câmera e navegação",
        "route": "roadmap/camera-e-navegacao",
        "use": "Crie uma câmera ativa; escolha projeção e planos. Olhar recebe entrada e Acompanhar alvo recebe uma referência. Não use a pose da câmera como fonte implícita de física do jogador.",
        "example": "Atribua um alvo a Acompanhar alvo e mova-o. Compare Damping 0 com um tempo maior. Teste perspectiva/ortográfica com a mesma malha enquadrada.",
        "next": "Consolidar composição de rigs, apresentação e aceite de input/viewports. Pareamento geral de jogadores/câmeras pertence também ao roadmap UI R4/R9; não há data por método.",
        "purpose": "Rotação local da câmera por entrada ou script",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Câmera** / **Controle** → **Olhar**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.camera.follow",
      "name": "Acompanhar alvo",
      "description": "Posiciona a câmera após física e animação",
      "family": "Câmera",
      "subfamily": "Controle",
      "api": "CameraFollow",
      "reference": "https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/manual/CinemachineFollow.html",
      "aliases": "Follow Camera Tracking Damping CinemachineFollow",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.camera",
          "message": "Adicione Câmera a este objeto"
        }
      ],
      "conflicts": [
        {
          "typeId": "astra.physics.body",
          "message": "A câmera seguidora não pode receber pose do corpo físico"
        },
        {
          "typeId": "astra.physics.character",
          "message": "A câmera seguidora não pode receber pose do personagem"
        }
      ],
      "properties": [
        {
          "id": "offset_x",
          "name": "Deslocamento X",
          "kind": "número",
          "group": "Posição",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-follow/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Deslocamento Y",
          "kind": "número",
          "group": "Posição",
          "unit": "m",
          "help": "",
          "default": "2",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-follow/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Deslocamento Z",
          "kind": "número",
          "group": "Posição",
          "unit": "m",
          "help": "",
          "default": "-5",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-follow/#field-offset-z"
        },
        {
          "id": "damping_seconds",
          "name": "Amortecimento",
          "kind": "número",
          "group": "Resposta",
          "unit": "s",
          "help": "",
          "default": "0.2",
          "domain": "0 … 30",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Tempo de suavização da aproximação da câmera ao alvo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-follow/#field-damping-seconds"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Resposta",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-follow/#field-enabled"
        },
        {
          "id": "target",
          "name": "Alvo",
          "kind": "referência",
          "group": "Posição",
          "unit": "",
          "help": "",
          "default": "Escolher objeto",
          "domain": "qualquer objeto · fora da subárvore",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-camera-follow/#field-target"
        }
      ],
      "guide": {
        "title": "Câmera e navegação",
        "route": "roadmap/camera-e-navegacao",
        "use": "Crie uma câmera ativa; escolha projeção e planos. Olhar recebe entrada e Acompanhar alvo recebe uma referência. Não use a pose da câmera como fonte implícita de física do jogador.",
        "example": "Atribua um alvo a Acompanhar alvo e mova-o. Compare Damping 0 com um tempo maior. Teste perspectiva/ortográfica com a mesma malha enquadrada.",
        "next": "Consolidar composição de rigs, apresentação e aceite de input/viewports. Pareamento geral de jogadores/câmeras pertence também ao roadmap UI R4/R9; não há data por método.",
        "purpose": "Posiciona a câmera após física e animação",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Câmera** / **Controle** → **Acompanhar alvo**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.collision_recipe",
      "name": "Receita de colisão",
      "description": "Fontes e base das partes para regeneração explícita preservando edições",
      "family": "Física 3D",
      "subfamily": "Autoria",
      "api": "",
      "reference": "https://docs.godotengine.org/en/4.5/tutorials/assets_pipeline/import_process.html",
      "aliases": "Bake Reimport Regenerate Receita Colisão",
      "schemaVersion": 2,
      "allowMultiple": false,
      "listedInAdd": false,
      "structuralInPlay": "não permitido",
      "propertiesInPlay": "não permitido",
      "requirements": [
        {
          "typeId": "astra.physics.body",
          "message": "Adicione Corpo físico a este objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "source_0",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-0"
        },
        {
          "id": "source_1",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-1"
        },
        {
          "id": "source_2",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-2"
        },
        {
          "id": "source_3",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-3"
        },
        {
          "id": "source_4",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-4"
        },
        {
          "id": "source_5",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-5"
        },
        {
          "id": "source_6",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-6"
        },
        {
          "id": "source_7",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-7"
        },
        {
          "id": "source_8",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-8"
        },
        {
          "id": "source_9",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-9"
        },
        {
          "id": "source_10",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-10"
        },
        {
          "id": "source_11",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-11"
        },
        {
          "id": "source_12",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-12"
        },
        {
          "id": "source_13",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-13"
        },
        {
          "id": "source_14",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-14"
        },
        {
          "id": "source_15",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-15"
        },
        {
          "id": "source_16",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-16"
        },
        {
          "id": "source_17",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-17"
        },
        {
          "id": "source_18",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-18"
        },
        {
          "id": "source_19",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-19"
        },
        {
          "id": "source_20",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-20"
        },
        {
          "id": "source_21",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-21"
        },
        {
          "id": "source_22",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-22"
        },
        {
          "id": "source_23",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-23"
        },
        {
          "id": "source_24",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-24"
        },
        {
          "id": "source_25",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-25"
        },
        {
          "id": "source_26",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-26"
        },
        {
          "id": "source_27",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-27"
        },
        {
          "id": "source_28",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-28"
        },
        {
          "id": "source_29",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-29"
        },
        {
          "id": "source_30",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-30"
        },
        {
          "id": "source_31",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-31"
        },
        {
          "id": "source_32",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-32"
        },
        {
          "id": "source_33",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-33"
        },
        {
          "id": "source_34",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-34"
        },
        {
          "id": "source_35",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-35"
        },
        {
          "id": "source_36",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-36"
        },
        {
          "id": "source_37",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-37"
        },
        {
          "id": "source_38",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-38"
        },
        {
          "id": "source_39",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-39"
        },
        {
          "id": "source_40",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-40"
        },
        {
          "id": "source_41",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-41"
        },
        {
          "id": "source_42",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-42"
        },
        {
          "id": "source_43",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-43"
        },
        {
          "id": "source_44",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-44"
        },
        {
          "id": "source_45",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-45"
        },
        {
          "id": "source_46",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-46"
        },
        {
          "id": "source_47",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-47"
        },
        {
          "id": "source_48",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-48"
        },
        {
          "id": "source_49",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-49"
        },
        {
          "id": "source_50",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-50"
        },
        {
          "id": "source_51",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-51"
        },
        {
          "id": "source_52",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-52"
        },
        {
          "id": "source_53",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-53"
        },
        {
          "id": "source_54",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-54"
        },
        {
          "id": "source_55",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-55"
        },
        {
          "id": "source_56",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-56"
        },
        {
          "id": "source_57",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-57"
        },
        {
          "id": "source_58",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-58"
        },
        {
          "id": "source_59",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-59"
        },
        {
          "id": "source_60",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-60"
        },
        {
          "id": "source_61",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-61"
        },
        {
          "id": "source_62",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-62"
        },
        {
          "id": "source_63",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-63"
        },
        {
          "id": "source_64",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-64"
        },
        {
          "id": "source_65",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-65"
        },
        {
          "id": "source_66",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-66"
        },
        {
          "id": "source_67",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-67"
        },
        {
          "id": "source_68",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-68"
        },
        {
          "id": "source_69",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-69"
        },
        {
          "id": "source_70",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-70"
        },
        {
          "id": "source_71",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-71"
        },
        {
          "id": "source_72",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-72"
        },
        {
          "id": "source_73",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-73"
        },
        {
          "id": "source_74",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-74"
        },
        {
          "id": "source_75",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-75"
        },
        {
          "id": "source_76",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-76"
        },
        {
          "id": "source_77",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-77"
        },
        {
          "id": "source_78",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-78"
        },
        {
          "id": "source_79",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-79"
        },
        {
          "id": "source_80",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-80"
        },
        {
          "id": "source_81",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-81"
        },
        {
          "id": "source_82",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-82"
        },
        {
          "id": "source_83",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-83"
        },
        {
          "id": "source_84",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-84"
        },
        {
          "id": "source_85",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-85"
        },
        {
          "id": "source_86",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-86"
        },
        {
          "id": "source_87",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-87"
        },
        {
          "id": "source_88",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-88"
        },
        {
          "id": "source_89",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-89"
        },
        {
          "id": "source_90",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-90"
        },
        {
          "id": "source_91",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-91"
        },
        {
          "id": "source_92",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-92"
        },
        {
          "id": "source_93",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-93"
        },
        {
          "id": "source_94",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-94"
        },
        {
          "id": "source_95",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-95"
        },
        {
          "id": "source_96",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-96"
        },
        {
          "id": "source_97",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-97"
        },
        {
          "id": "source_98",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-98"
        },
        {
          "id": "source_99",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-99"
        },
        {
          "id": "source_100",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-100"
        },
        {
          "id": "source_101",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-101"
        },
        {
          "id": "source_102",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-102"
        },
        {
          "id": "source_103",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-103"
        },
        {
          "id": "source_104",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-104"
        },
        {
          "id": "source_105",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-105"
        },
        {
          "id": "source_106",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-106"
        },
        {
          "id": "source_107",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-107"
        },
        {
          "id": "source_108",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-108"
        },
        {
          "id": "source_109",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-109"
        },
        {
          "id": "source_110",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-110"
        },
        {
          "id": "source_111",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-111"
        },
        {
          "id": "source_112",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-112"
        },
        {
          "id": "source_113",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-113"
        },
        {
          "id": "source_114",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-114"
        },
        {
          "id": "source_115",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-115"
        },
        {
          "id": "source_116",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-116"
        },
        {
          "id": "source_117",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-117"
        },
        {
          "id": "source_118",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-118"
        },
        {
          "id": "source_119",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-119"
        },
        {
          "id": "source_120",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-120"
        },
        {
          "id": "source_121",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-121"
        },
        {
          "id": "source_122",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-122"
        },
        {
          "id": "source_123",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-123"
        },
        {
          "id": "source_124",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-124"
        },
        {
          "id": "source_125",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-125"
        },
        {
          "id": "source_126",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-126"
        },
        {
          "id": "source_127",
          "name": "Fonte da colisão",
          "kind": "referência",
          "group": "Fontes",
          "unit": "",
          "help": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "default": "Fonte ausente",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": true,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto/slot persistentes; regeneração é uma ação explícita",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collision-recipe/#field-source-127"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Fontes e base das partes para regeneração explícita preservando edições",
        "location": "Área de código → crie/compile o Behavior → anexe ao objeto. Este registro não é criado pelo menu genérico.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.field.gravity",
      "name": "Campo de gravidade",
      "description": "Gravidade local em volume sobre corpos dinâmicos",
      "family": "Física 3D",
      "subfamily": "Campos",
      "api": "GravityField",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area3d.html",
      "aliases": "Area3D Gravity Zone Gravidade",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-half-y"
        },
        {
          "id": "half_z",
          "name": "Meia extensão Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-half-z"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Centro Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-offset-z"
        },
        {
          "id": "vector_x",
          "name": "Vetor X",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-vector-x"
        },
        {
          "id": "vector_y",
          "name": "Vetor Y",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "-9.81",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-vector-y"
        },
        {
          "id": "vector_z",
          "name": "Vetor Z",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-vector-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-wake-bodies"
        },
        {
          "id": "replace_world_gravity",
          "name": "Substituir gravidade do mundo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "Sobrepostos somam vetores e cancelam a gravidade padrão uma única vez",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Sobrepostos somam vetores e cancelam a gravidade padrão uma única vez",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-replace-world-gravity"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Caixa",
          "domain": "Caixa | Esfera",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-gravity/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Gravidade local em volume sobre corpos dinâmicos",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Campos** → **Campo de gravidade**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.field.wind",
      "name": "Campo de vento",
      "description": "Arrasto para velocidade local do ar, dependente da massa",
      "family": "Física 3D",
      "subfamily": "Campos",
      "api": "WindField",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area3d.html",
      "aliases": "Area3D Wind Vento",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-half-y"
        },
        {
          "id": "half_z",
          "name": "Meia extensão Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-half-z"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Centro Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-offset-z"
        },
        {
          "id": "vector_x",
          "name": "Vetor X",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s",
          "help": "",
          "default": "5",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-vector-x"
        },
        {
          "id": "vector_y",
          "name": "Vetor Y",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-vector-y"
        },
        {
          "id": "vector_z",
          "name": "Vetor Z",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-vector-z"
        },
        {
          "id": "coefficient",
          "name": "Acoplamento",
          "kind": "número",
          "group": "Efeito",
          "unit": "kg/s",
          "help": "",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Coeficiente da contribuição de vento, combinado com o vetor/campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-coefficient"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-wake-bodies"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Caixa",
          "domain": "Caixa | Esfera",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-wind/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Arrasto para velocidade local do ar, dependente da massa",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Campos** → **Campo de vento**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.field.drag",
      "name": "Campo de arrasto",
      "description": "Amortecimento linear e angular local",
      "family": "Física 3D",
      "subfamily": "Campos",
      "api": "DragField",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area3d.html",
      "aliases": "Area3D Damp Drag Arrasto",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-half-y"
        },
        {
          "id": "half_z",
          "name": "Meia extensão Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-half-z"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Centro Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-offset-z"
        },
        {
          "id": "linear_drag",
          "name": "Arrasto linear",
          "kind": "número",
          "group": "Efeito",
          "unit": "1/s",
          "help": "",
          "default": "1",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Arrasto linear aplicado pelo campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-linear-drag"
        },
        {
          "id": "angular_drag",
          "name": "Arrasto angular",
          "kind": "número",
          "group": "Efeito",
          "unit": "1/s",
          "help": "",
          "default": "1",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Arrasto angular aplicado pelo campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-angular-drag"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-wake-bodies"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Caixa",
          "domain": "Caixa | Esfera",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-drag/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Amortecimento linear e angular local",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Campos** → **Campo de arrasto**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.field.radial",
      "name": "Campo radial",
      "description": "Atração, repulsão e vórtice ao redor do centro",
      "family": "Física 3D",
      "subfamily": "Campos",
      "api": "RadialField",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area3d.html",
      "aliases": "Area3D Point Gravity Vortex Radial",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-half-y"
        },
        {
          "id": "half_z",
          "name": "Meia extensão Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-half-z"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Centro Z",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-offset-z"
        },
        {
          "id": "acceleration",
          "name": "Aceleração radial",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "-9.81",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aceleração radial em relação à origem do campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-acceleration"
        },
        {
          "id": "tangential_acceleration",
          "name": "Aceleração tangencial",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aceleração tangencial em torno da origem.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-tangential-acceleration"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-wake-bodies"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Caixa",
          "domain": "Caixa | Esfera",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-field-radial/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Atração, repulsão e vórtice ao redor do centro",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Campos** → **Campo radial**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.event_connection",
      "name": "Conexão física 3D",
      "description": "Evento de sensor/contato altera a ativação de um receptor",
      "family": "Física 3D",
      "subfamily": "Eventos",
      "api": "PhysicsEventConnection3D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area3d.html",
      "aliases": "Trigger Collision Area3D Signal Evento Conexao",
      "schemaVersion": 1,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics.body",
          "message": "Adicione Corpo físico ao emissor da conexão"
        },
        {
          "typeId": "astra.physics.collider",
          "message": "Adicione Colisor 3D ao emissor da conexão"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "enabled",
          "name": "Ativa",
          "kind": "booleano",
          "group": "Conexão",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-event-connection/#field-enabled"
        },
        {
          "id": "event",
          "name": "Evento",
          "kind": "enumeração",
          "group": "Conexão",
          "unit": "",
          "help": "Sensor exige Sensor ligado no Corpo físico; contato sólido exige desligado",
          "default": "Entrada sensor",
          "domain": "Entrada sensor | Perm. sensor | Saída sensor | Entrada contato | Perm. contato | Saída contato",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Sensor exige Sensor ligado no Corpo físico; contato sólido exige desligado",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-event-connection/#field-event"
        },
        {
          "id": "action",
          "name": "Ação",
          "kind": "enumeração",
          "group": "Conexão",
          "unit": "",
          "help": "Executada antes do callback C#; permanência pode disparar a cada passo físico",
          "default": "Desconectado",
          "domain": "Desconectado | Ativar objeto | Desativar objeto | Alternar objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Executada antes do callback C#; permanência pode disparar a cada passo físico",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-event-connection/#field-action"
        },
        {
          "id": "receiver",
          "name": "Receptor",
          "kind": "referência",
          "group": "Conexão",
          "unit": "",
          "help": "Objeto cuja ativação será alterada",
          "default": "Escolher objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto cuja ativação será alterada",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-event-connection/#field-receiver"
        },
        {
          "id": "other_filter",
          "name": "Outro objeto",
          "kind": "referência",
          "group": "Filtro",
          "unit": "",
          "help": "Opcional: somente eventos com este outro objeto; vazio aceita todos",
          "default": "Qualquer objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Opcional: somente eventos com este outro objeto; vazio aceita todos",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-event-connection/#field-other-filter"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Evento de sensor/contato altera a ativação de um receptor",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Eventos** → **Conexão física 3D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.constant_force",
      "name": "Força constante",
      "description": "Força e torque contínuos sobre corpo dinâmico",
      "family": "Física 3D",
      "subfamily": "Forças",
      "api": "ConstantForce",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-ConstantForce.html",
      "aliases": "ConstantForce AddRelativeForce AddRelativeTorque Propulsão",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics.body",
          "message": "Adicione Corpo físico a este objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "force_x",
          "name": "Força X",
          "kind": "número",
          "group": "Força mundo",
          "unit": "N",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-force-x"
        },
        {
          "id": "force_y",
          "name": "Força Y",
          "kind": "número",
          "group": "Força mundo",
          "unit": "N",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-force-y"
        },
        {
          "id": "force_z",
          "name": "Força Z",
          "kind": "número",
          "group": "Força mundo",
          "unit": "N",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-force-z"
        },
        {
          "id": "relative_force_x",
          "name": "Força local X",
          "kind": "número",
          "group": "Força local",
          "unit": "N",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-relative-force-x"
        },
        {
          "id": "relative_force_y",
          "name": "Força local Y",
          "kind": "número",
          "group": "Força local",
          "unit": "N",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-relative-force-y"
        },
        {
          "id": "relative_force_z",
          "name": "Força local Z",
          "kind": "número",
          "group": "Força local",
          "unit": "N",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-relative-force-z"
        },
        {
          "id": "torque_x",
          "name": "Torque X",
          "kind": "número",
          "group": "Torque mundo",
          "unit": "N·m",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-torque-x"
        },
        {
          "id": "torque_y",
          "name": "Torque Y",
          "kind": "número",
          "group": "Torque mundo",
          "unit": "N·m",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-torque-y"
        },
        {
          "id": "torque_z",
          "name": "Torque Z",
          "kind": "número",
          "group": "Torque mundo",
          "unit": "N·m",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-torque-z"
        },
        {
          "id": "relative_torque_x",
          "name": "Torque local X",
          "kind": "número",
          "group": "Torque local",
          "unit": "N·m",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-relative-torque-x"
        },
        {
          "id": "relative_torque_y",
          "name": "Torque local Y",
          "kind": "número",
          "group": "Torque local",
          "unit": "N·m",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-relative-torque-y"
        },
        {
          "id": "relative_torque_z",
          "name": "Torque local Z",
          "kind": "número",
          "group": "Torque local",
          "unit": "N·m",
          "help": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplicado a cada passo físico; não multiplique pelo tempo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-relative-torque-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Força mundo",
          "unit": "",
          "help": "Requer Corpo físico dinâmico no mesmo objeto; desligado permite configurar sem aplicar.",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Requer Corpo físico dinâmico no mesmo objeto; desligado permite configurar sem aplicar.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-constant-force/#field-enabled"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Força e torque contínuos sobre corpo dinâmico",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Forças** → **Força constante**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.body",
      "name": "Corpo físico",
      "description": "Massa e resposta física",
      "family": "Física 3D",
      "subfamily": "Corpos",
      "api": "PhysicsBody",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-Rigidbody.html",
      "aliases": "Rigidbody RigidBody3D StaticBody3D Massa",
      "schemaVersion": 4,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "não permitido",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [
        {
          "typeId": "astra.physics.character",
          "message": "Incompatível com personagem cápsula"
        }
      ],
      "properties": [
        {
          "id": "mass",
          "name": "Massa kg",
          "kind": "número",
          "group": "Corpo",
          "unit": "kg",
          "help": "",
          "default": "1",
          "domain": "0.01 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Massa do corpo dinâmico em kg; influencia resposta a força/impulso.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-mass"
        },
        {
          "id": "friction",
          "name": "Atrito",
          "kind": "número",
          "group": "Corpo",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Atrito nos contatos; compare deslizamento com o mesmo par de superfícies.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-friction"
        },
        {
          "id": "restitution",
          "name": "Restituição",
          "kind": "número",
          "group": "Corpo",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Restituição nos contatos; controla ressalto conforme a combinação física.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-restitution"
        },
        {
          "id": "velocity_x",
          "name": "Velocidade inicial X",
          "kind": "número",
          "group": "Início",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade linear inicial/autorada do corpo, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-velocity-x"
        },
        {
          "id": "velocity_y",
          "name": "Velocidade inicial Y",
          "kind": "número",
          "group": "Início",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade linear inicial/autorada do corpo, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-velocity-y"
        },
        {
          "id": "velocity_z",
          "name": "Velocidade inicial Z",
          "kind": "número",
          "group": "Início",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade linear inicial/autorada do corpo, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-velocity-z"
        },
        {
          "id": "angular_x",
          "name": "Giro inicial X · rad/s",
          "kind": "número",
          "group": "Início",
          "unit": "rad/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade angular do corpo, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-angular-x"
        },
        {
          "id": "angular_y",
          "name": "Giro inicial Y · rad/s",
          "kind": "número",
          "group": "Início",
          "unit": "rad/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade angular do corpo, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-angular-y"
        },
        {
          "id": "angular_z",
          "name": "Giro inicial Z · rad/s",
          "kind": "número",
          "group": "Início",
          "unit": "rad/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade angular do corpo, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-angular-z"
        },
        {
          "id": "linear_damping",
          "name": "Amortecimento linear",
          "kind": "número",
          "group": "Amortecimento",
          "unit": "",
          "help": "",
          "default": "0.05",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento de velocidade linear.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-linear-damping"
        },
        {
          "id": "angular_damping",
          "name": "Amortecimento angular",
          "kind": "número",
          "group": "Amortecimento",
          "unit": "",
          "help": "",
          "default": "0.05",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento de velocidade angular.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-angular-damping"
        },
        {
          "id": "gravity_factor",
          "name": "Multiplicador da gravidade",
          "kind": "número",
          "group": "Amortecimento",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplica gravidade mundial deste corpo 3D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-gravity-factor"
        },
        {
          "id": "max_linear_velocity",
          "name": "Limite linear",
          "kind": "número",
          "group": "Simulação",
          "unit": "m/s",
          "help": "",
          "default": "500",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite de velocidade linear do corpo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-max-linear-velocity"
        },
        {
          "id": "max_angular_velocity",
          "name": "Limite angular",
          "kind": "número",
          "group": "Simulação",
          "unit": "rad/s",
          "help": "",
          "default": "47.12389",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite de velocidade angular do corpo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-max-angular-velocity"
        },
        {
          "id": "solver_velocity_steps",
          "name": "Iterações de velocidade",
          "kind": "número",
          "group": "Simulação",
          "unit": "",
          "help": "0 usa as iterações do mundo; aumenta custo por ilha de contato",
          "default": "0",
          "domain": "0 … 255",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "0 usa as iterações do mundo; aumenta custo por ilha de contato",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-solver-velocity-steps"
        },
        {
          "id": "sensor",
          "name": "Sensor sem resposta",
          "kind": "booleano",
          "group": "Corpo",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participa como sensor/sobreposição; não é uma superfície sólida de contato.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-sensor"
        },
        {
          "id": "allow_sleep",
          "name": "Permitir repouso",
          "kind": "booleano",
          "group": "Corpo",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Permite dormir quando o corpo pode ficar em repouso.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-allow-sleep"
        },
        {
          "id": "freeze_position_x",
          "name": "Travar posição X",
          "kind": "booleano",
          "group": "Restrições",
          "unit": "",
          "help": "Eixos do mundo; bloquear todos exige corpo estático",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Eixos do mundo; bloquear todos exige corpo estático",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-freeze-position-x"
        },
        {
          "id": "freeze_position_y",
          "name": "Travar posição Y",
          "kind": "booleano",
          "group": "Restrições",
          "unit": "",
          "help": "Eixos do mundo; bloquear todos exige corpo estático",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Eixos do mundo; bloquear todos exige corpo estático",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-freeze-position-y"
        },
        {
          "id": "freeze_position_z",
          "name": "Travar posição Z",
          "kind": "booleano",
          "group": "Restrições",
          "unit": "",
          "help": "Eixos do mundo; bloquear todos exige corpo estático",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Eixos do mundo; bloquear todos exige corpo estático",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-freeze-position-z"
        },
        {
          "id": "freeze_rotation_x",
          "name": "Travar rotação X",
          "kind": "booleano",
          "group": "Restrições",
          "unit": "",
          "help": "Eixos do mundo; bloquear todos exige corpo estático",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Eixos do mundo; bloquear todos exige corpo estático",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-freeze-rotation-x"
        },
        {
          "id": "freeze_rotation_y",
          "name": "Travar rotação Y",
          "kind": "booleano",
          "group": "Restrições",
          "unit": "",
          "help": "Eixos do mundo; bloquear todos exige corpo estático",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Eixos do mundo; bloquear todos exige corpo estático",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-freeze-rotation-y"
        },
        {
          "id": "freeze_rotation_z",
          "name": "Travar rotação Z",
          "kind": "booleano",
          "group": "Restrições",
          "unit": "",
          "help": "Eixos do mundo; bloquear todos exige corpo estático",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Eixos do mundo; bloquear todos exige corpo estático",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-freeze-rotation-z"
        },
        {
          "id": "continuous_collision",
          "name": "Colisão contínua",
          "kind": "booleano",
          "group": "Simulação",
          "unit": "",
          "help": "Varredura linear Jolt; não detecta varredura apenas angular",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Varredura linear Jolt; não detecta varredura apenas angular",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-continuous-collision"
        },
        {
          "id": "motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Corpo",
          "unit": "",
          "help": "",
          "default": "Estático",
          "domain": "Estático | Cinemático | Dinâmico",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe autoridade estática/cinemática/dinâmica no domínio do corpo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-body/#field-motion"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Massa e resposta física",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Corpos** → **Corpo físico**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.character",
      "name": "Personagem",
      "description": "Locomoção com cápsula",
      "family": "Física 3D",
      "subfamily": "Corpos",
      "api": "Character",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-CharacterController.html",
      "aliases": "CharacterController CharacterBody3D Jogador",
      "schemaVersion": 4,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "não permitido",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [
        {
          "typeId": "astra.physics.body",
          "message": "Incompatível com corpo físico"
        },
        {
          "typeId": "astra.physics.collider",
          "message": "O personagem traz a própria cápsula; remova o Colisor 3D"
        },
        {
          "typeId": "astra.physics.dynamic_motor",
          "message": "Escolha Character ou motor de corpo dinâmico"
        }
      ],
      "properties": [
        {
          "id": "radius",
          "name": "Raio m",
          "kind": "número",
          "group": "Cápsula",
          "unit": "m",
          "help": "",
          "default": "0.45",
          "domain": "0.01 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-radius"
        },
        {
          "id": "half_height",
          "name": "Meia altura do cilindro m",
          "kind": "número",
          "group": "Cápsula",
          "unit": "m",
          "help": "",
          "default": "0.55",
          "domain": "0.01 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-half-height"
        },
        {
          "id": "eye_height",
          "name": "Altura dos olhos m",
          "kind": "número",
          "group": "Cápsula",
          "unit": "m",
          "help": "",
          "default": "1.65",
          "domain": "0.02 … 20",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura de referência dos olhos do Character.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-eye-height"
        },
        {
          "id": "speed",
          "name": "Velocidade m/s",
          "kind": "número",
          "group": "Locomoção",
          "unit": "m/s",
          "help": "",
          "default": "8",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade de reprodução/percurso/motor na unidade do componente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-speed"
        },
        {
          "id": "slope_degrees",
          "name": "Inclinação máxima graus",
          "kind": "número",
          "group": "Locomoção",
          "unit": "°",
          "help": "",
          "default": "45",
          "domain": "1 … 89",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Inclinação máxima de apoio do Character.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-slope-degrees"
        },
        {
          "id": "jump_speed",
          "name": "Velocidade do salto m/s",
          "kind": "número",
          "group": "Locomoção",
          "unit": "m/s",
          "help": "",
          "default": "5",
          "domain": "0 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade alvo inicial de salto.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-jump-speed"
        },
        {
          "id": "step_height",
          "name": "Altura do degrau",
          "kind": "número",
          "group": "Chão",
          "unit": "m",
          "help": "",
          "default": "0.4",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Altura de degrau que o Character pode transpor.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-step-height"
        },
        {
          "id": "floor_snap_length",
          "name": "Aderência ao chão",
          "kind": "número",
          "group": "Chão",
          "unit": "m",
          "help": "",
          "default": "0.5",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Distância de snap ao chão; confira degraus e bordas.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-floor-snap-length"
        },
        {
          "id": "gravity",
          "name": "Gravidade",
          "kind": "número",
          "group": "Locomoção",
          "unit": "m/s²",
          "help": "",
          "default": "9.81",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aceleração de gravidade do Character.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-gravity"
        },
        {
          "id": "inherit_platform_horizontal",
          "name": "Impulso ao sair",
          "kind": "booleano",
          "group": "Chão",
          "unit": "",
          "help": "Conserva X/Z da superfície no ar; desligar remove apenas esse impulso, sem recriar a cápsula.",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física, corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Conserva X/Z da superfície no ar; desligar remove apenas esse impulso, sem recriar a cápsula.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-character/#field-inherit-platform-horizontal"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Locomoção com cápsula",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Corpos** → **Personagem**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.collider",
      "name": "Colisor 3D",
      "description": "Volume de contato",
      "family": "Física 3D",
      "subfamily": "Formas",
      "api": "Collider",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-BoxCollider.html",
      "aliases": "BoxCollider SphereCollider CapsuleCollider MeshCollider CylinderShape3D CollisionShape3D",
      "schemaVersion": 8,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "não permitido",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [
        {
          "typeId": "astra.physics.character",
          "message": "O personagem já possui cápsula própria"
        }
      ],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Forma",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0.01 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Forma",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0.01 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-half-y"
        },
        {
          "id": "half_z",
          "name": "Meia extensão Z",
          "kind": "número",
          "group": "Forma",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0.01 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-half-z"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Forma",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0.01 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-radius"
        },
        {
          "id": "half_height",
          "name": "Meia altura cilíndrica",
          "kind": "número",
          "group": "Forma",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0.01 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-half-height"
        },
        {
          "id": "center_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Pose",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro local da forma de colisão, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-center-x"
        },
        {
          "id": "center_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Pose",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro local da forma de colisão, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-center-y"
        },
        {
          "id": "center_z",
          "name": "Centro Z",
          "kind": "número",
          "group": "Pose",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro local da forma de colisão, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-center-z"
        },
        {
          "id": "rotation_x",
          "name": "Rotação local X",
          "kind": "número",
          "group": "Pose",
          "unit": "°",
          "help": "",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-rotation-x"
        },
        {
          "id": "rotation_y",
          "name": "Rotação local Y",
          "kind": "número",
          "group": "Pose",
          "unit": "°",
          "help": "",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-rotation-y"
        },
        {
          "id": "rotation_z",
          "name": "Rotação local Z",
          "kind": "número",
          "group": "Pose",
          "unit": "°",
          "help": "",
          "default": "0",
          "domain": "-10000000 … 10000000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Rotação autorada do sistema na unidade indicada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-rotation-z"
        },
        {
          "id": "hull_tolerance",
          "name": "Tolerância do casco",
          "kind": "número",
          "group": "Cozimento",
          "unit": "u",
          "help": "Pontos até esta distância podem ficar fora do casco; valores maiores geram cascos mais simples.",
          "default": "0.001",
          "domain": "0.00001 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Pontos até esta distância podem ficar fora do casco; valores maiores geram cascos mais simples.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-hull-tolerance"
        },
        {
          "id": "active_edge_angle",
          "name": "Ângulo de aresta ativa",
          "kind": "número",
          "group": "Cozimento",
          "unit": "°",
          "help": "Separa arestas de contato em superfícies com mudança de normal acima deste ângulo.",
          "default": "5",
          "domain": "0 … 90",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Separa arestas de contato em superfícies com mudança de normal acima deste ângulo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-active-edge-angle"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-enabled"
        },
        {
          "id": "convex",
          "name": "Convexo",
          "kind": "booleano",
          "group": "Forma",
          "unit": "",
          "help": "Casco convexo da malha: aceita corpo dinâmico. Desligado usa os triângulos exatos e só vale em corpo estático ou cinemático.",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Casco convexo da malha: aceita corpo dinâmico. Desligado usa os triângulos exatos e só vale em corpo estático ou cinemático.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-convex"
        },
        {
          "id": "weld_vertices",
          "name": "Soldar vértices iguais",
          "kind": "booleano",
          "group": "Cozimento",
          "unit": "",
          "help": "Compartilha vértices coincidentes antes de criar a malha física, reduzindo costuras internas.",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Compartilha vértices coincidentes antes de criar a malha física, reduzindo costuras internas.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-weld-vertices"
        },
        {
          "id": "optimize_cooking",
          "name": "Otimizar para o jogo",
          "kind": "booleano",
          "group": "Cozimento",
          "unit": "",
          "help": "Constrói uma árvore de busca mais eficiente; desligue para cozinhar mais rápido durante iterações.",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Constrói uma árvore de busca mais eficiente; desligue para cozinhar mais rápido durante iterações.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-optimize-cooking"
        },
        {
          "id": "mesh_local_pose",
          "name": "Pose local da malha",
          "kind": "booleano",
          "group": "Forma",
          "unit": "",
          "help": "Aplica centro e rotação locais à geometria física; não altera a malha visual. Desligado mantém a pose legada do objeto.",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aplica centro e rotação locais à geometria física; não altera a malha visual. Desligado mantém a pose legada do objeto.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-mesh-local-pose"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Forma",
          "unit": "",
          "help": "",
          "default": "Caixa",
          "domain": "Caixa | Esfera | Cápsula | Malha | Cilindro",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe a geometria do colisor/campo no domínio indicado; os campos relevantes mudam por forma.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-shape"
        },
        {
          "id": "owner",
          "name": "Corpo proprietário",
          "kind": "referência",
          "group": "Vínculo",
          "unit": "",
          "help": "",
          "default": "Neste objeto",
          "domain": "astra.physics.body · neste objeto ou ancestral",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe o dono do corpo/forma no domínio do colisor.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-collider/#field-owner"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Volume de contato",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Formas** → **Colisor 3D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.joint",
      "name": "Junta",
      "description": "Nove mecanismos Jolt com limites, referenciais e motores",
      "family": "Física 3D",
      "subfamily": "Juntas",
      "api": "Joint",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_generic6dofjoint3d.html",
      "aliases": "HingeJoint SliderJoint SpringJoint FixedJoint ConeTwistJoint3D Generic6DOFJoint3D",
      "schemaVersion": 2,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics.body",
          "message": "Adicione Corpo físico a este objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "anchor_a_x",
          "name": "Âncora A · X",
          "kind": "número",
          "group": "Âncoras",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo A, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-anchor-a-x"
        },
        {
          "id": "anchor_a_y",
          "name": "Âncora A · Y",
          "kind": "número",
          "group": "Âncoras",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo A, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-anchor-a-y"
        },
        {
          "id": "anchor_a_z",
          "name": "Âncora A · Z",
          "kind": "número",
          "group": "Âncoras",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo A, componente Z. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-anchor-a-z"
        },
        {
          "id": "anchor_b_x",
          "name": "Âncora B · X",
          "kind": "número",
          "group": "Âncoras",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo B, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-anchor-b-x"
        },
        {
          "id": "anchor_b_y",
          "name": "Âncora B · Y",
          "kind": "número",
          "group": "Âncoras",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo B, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-anchor-b-y"
        },
        {
          "id": "anchor_b_z",
          "name": "Âncora B · Z",
          "kind": "número",
          "group": "Âncoras",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo B, componente Z. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-anchor-b-z"
        },
        {
          "id": "axis_a_x",
          "name": "Eixo A · X",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direção do eixo no frame do corpo A, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-axis-a-x"
        },
        {
          "id": "axis_a_y",
          "name": "Eixo A · Y",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direção do eixo no frame do corpo A, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-axis-a-y"
        },
        {
          "id": "axis_a_z",
          "name": "Eixo A · Z",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direção do eixo no frame do corpo A, componente Z. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-axis-a-z"
        },
        {
          "id": "axis_b_x",
          "name": "Eixo B · X",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direção do eixo no frame do corpo B, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-axis-b-x"
        },
        {
          "id": "axis_b_y",
          "name": "Eixo B · Y",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direção do eixo no frame do corpo B, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-axis-b-y"
        },
        {
          "id": "axis_b_z",
          "name": "Eixo B · Z",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direção do eixo no frame do corpo B, componente Z. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-axis-b-z"
        },
        {
          "id": "limit_min",
          "name": "Limite mínimo",
          "kind": "número",
          "group": "Movimento",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite inferior da junta na unidade do tipo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-limit-min"
        },
        {
          "id": "limit_max",
          "name": "Limite máximo",
          "kind": "número",
          "group": "Movimento",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite superior da junta na unidade do tipo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-limit-max"
        },
        {
          "id": "motor_velocity",
          "name": "Velocidade do motor",
          "kind": "número",
          "group": "Motor",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade alvo do motor da junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-motor-velocity"
        },
        {
          "id": "motor_position",
          "name": "Alvo do motor",
          "kind": "número",
          "group": "Motor",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição alvo do motor da junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-motor-position"
        },
        {
          "id": "motor_force",
          "name": "Força / torque máximo",
          "kind": "número",
          "group": "Motor",
          "unit": "",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Força/torque máximo do motor, conforme o tipo de junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-motor-force"
        },
        {
          "id": "spring_frequency",
          "name": "Frequência · Hz",
          "kind": "número",
          "group": "Motor",
          "unit": "Hz",
          "help": "",
          "default": "2",
          "domain": "0.001 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Frequência da mola da junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-spring-frequency"
        },
        {
          "id": "spring_damping",
          "name": "Amortecimento da mola",
          "kind": "número",
          "group": "Motor",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento da mola da junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-spring-damping"
        },
        {
          "id": "normal_a_x",
          "name": "Plano A · X",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Normal de referência no frame do corpo A, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-normal-a-x"
        },
        {
          "id": "normal_a_y",
          "name": "Plano A · Y",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Normal de referência no frame do corpo A, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-normal-a-y"
        },
        {
          "id": "normal_a_z",
          "name": "Plano A · Z",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Normal de referência no frame do corpo A, componente Z. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-normal-a-z"
        },
        {
          "id": "normal_b_x",
          "name": "Plano B · X",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Normal de referência no frame do corpo B, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-normal-b-x"
        },
        {
          "id": "normal_b_y",
          "name": "Plano B · Y",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Normal de referência no frame do corpo B, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-normal-b-y"
        },
        {
          "id": "normal_b_z",
          "name": "Plano B · Z",
          "kind": "número",
          "group": "Eixos",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Normal de referência no frame do corpo B, componente Z. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-normal-b-z"
        },
        {
          "id": "swing_y",
          "name": "Cone · semiângulo Y",
          "kind": "número",
          "group": "Rotação",
          "unit": "°",
          "help": "",
          "default": "45",
          "domain": "0 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite de swing no eixo Y da junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-swing-y"
        },
        {
          "id": "swing_z",
          "name": "Cone · semiângulo Z",
          "kind": "número",
          "group": "Rotação",
          "unit": "°",
          "help": "",
          "default": "45",
          "domain": "0 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite de swing no eixo Z da junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-swing-z"
        },
        {
          "id": "twist_min",
          "name": "Torção mínima",
          "kind": "número",
          "group": "Rotação",
          "unit": "°",
          "help": "",
          "default": "-45",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite inferior de twist.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-twist-min"
        },
        {
          "id": "twist_max",
          "name": "Torção máxima",
          "kind": "número",
          "group": "Rotação",
          "unit": "°",
          "help": "",
          "default": "45",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite superior de twist.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-twist-max"
        },
        {
          "id": "linear_x_minimum",
          "name": "Limite mínimo",
          "kind": "número",
          "group": "Translação X",
          "unit": "u",
          "help": "",
          "default": "-1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite inferior do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-minimum"
        },
        {
          "id": "linear_x_maximum",
          "name": "Limite máximo",
          "kind": "número",
          "group": "Translação X",
          "unit": "u",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite superior do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-maximum"
        },
        {
          "id": "linear_x_friction",
          "name": "Atrito máximo",
          "kind": "número",
          "group": "Translação X",
          "unit": "N",
          "help": "",
          "default": "0",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: fricção no grau de liberdade do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-friction"
        },
        {
          "id": "linear_x_velocity",
          "name": "Velocidade alvo",
          "kind": "número",
          "group": "Translação X",
          "unit": "u/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: velocidade alvo do motor do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-velocity"
        },
        {
          "id": "linear_x_position",
          "name": "Posição alvo",
          "kind": "número",
          "group": "Translação X",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: posição/ângulo alvo do motor do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-position"
        },
        {
          "id": "linear_x_force",
          "name": "Força máxima",
          "kind": "número",
          "group": "Translação X",
          "unit": "N",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: força/torque máximo do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-force"
        },
        {
          "id": "linear_x_frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Translação X",
          "unit": "Hz",
          "help": "",
          "default": "2",
          "domain": "0.001 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: frequência da mola do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-frequency"
        },
        {
          "id": "linear_x_damping",
          "name": "Amortecimento",
          "kind": "número",
          "group": "Translação X",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: amortecimento da mola do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-damping"
        },
        {
          "id": "linear_y_minimum",
          "name": "Limite mínimo",
          "kind": "número",
          "group": "Translação Y",
          "unit": "u",
          "help": "",
          "default": "-1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite inferior do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-minimum"
        },
        {
          "id": "linear_y_maximum",
          "name": "Limite máximo",
          "kind": "número",
          "group": "Translação Y",
          "unit": "u",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite superior do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-maximum"
        },
        {
          "id": "linear_y_friction",
          "name": "Atrito máximo",
          "kind": "número",
          "group": "Translação Y",
          "unit": "N",
          "help": "",
          "default": "0",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: fricção no grau de liberdade do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-friction"
        },
        {
          "id": "linear_y_velocity",
          "name": "Velocidade alvo",
          "kind": "número",
          "group": "Translação Y",
          "unit": "u/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: velocidade alvo do motor do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-velocity"
        },
        {
          "id": "linear_y_position",
          "name": "Posição alvo",
          "kind": "número",
          "group": "Translação Y",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: posição/ângulo alvo do motor do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-position"
        },
        {
          "id": "linear_y_force",
          "name": "Força máxima",
          "kind": "número",
          "group": "Translação Y",
          "unit": "N",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: força/torque máximo do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-force"
        },
        {
          "id": "linear_y_frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Translação Y",
          "unit": "Hz",
          "help": "",
          "default": "2",
          "domain": "0.001 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: frequência da mola do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-frequency"
        },
        {
          "id": "linear_y_damping",
          "name": "Amortecimento",
          "kind": "número",
          "group": "Translação Y",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: amortecimento da mola do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-damping"
        },
        {
          "id": "linear_z_minimum",
          "name": "Limite mínimo",
          "kind": "número",
          "group": "Translação Z",
          "unit": "u",
          "help": "",
          "default": "-1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite inferior do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-minimum"
        },
        {
          "id": "linear_z_maximum",
          "name": "Limite máximo",
          "kind": "número",
          "group": "Translação Z",
          "unit": "u",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite superior do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-maximum"
        },
        {
          "id": "linear_z_friction",
          "name": "Atrito máximo",
          "kind": "número",
          "group": "Translação Z",
          "unit": "N",
          "help": "",
          "default": "0",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: fricção no grau de liberdade do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-friction"
        },
        {
          "id": "linear_z_velocity",
          "name": "Velocidade alvo",
          "kind": "número",
          "group": "Translação Z",
          "unit": "u/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: velocidade alvo do motor do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-velocity"
        },
        {
          "id": "linear_z_position",
          "name": "Posição alvo",
          "kind": "número",
          "group": "Translação Z",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: posição/ângulo alvo do motor do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-position"
        },
        {
          "id": "linear_z_force",
          "name": "Força máxima",
          "kind": "número",
          "group": "Translação Z",
          "unit": "N",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: força/torque máximo do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-force"
        },
        {
          "id": "linear_z_frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Translação Z",
          "unit": "Hz",
          "help": "",
          "default": "2",
          "domain": "0.001 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: frequência da mola do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-frequency"
        },
        {
          "id": "linear_z_damping",
          "name": "Amortecimento",
          "kind": "número",
          "group": "Translação Z",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: amortecimento da mola do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-damping"
        },
        {
          "id": "angular_x_minimum",
          "name": "Limite mínimo",
          "kind": "número",
          "group": "Rotação X",
          "unit": "°",
          "help": "",
          "default": "-1",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite inferior do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-minimum"
        },
        {
          "id": "angular_x_maximum",
          "name": "Limite máximo",
          "kind": "número",
          "group": "Rotação X",
          "unit": "°",
          "help": "",
          "default": "1",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite superior do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-maximum"
        },
        {
          "id": "angular_x_friction",
          "name": "Atrito máximo",
          "kind": "número",
          "group": "Rotação X",
          "unit": "Nm",
          "help": "",
          "default": "0",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: fricção no grau de liberdade do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-friction"
        },
        {
          "id": "angular_x_velocity",
          "name": "Velocidade alvo",
          "kind": "número",
          "group": "Rotação X",
          "unit": "°/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: velocidade alvo do motor do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-velocity"
        },
        {
          "id": "angular_x_position",
          "name": "Posição alvo",
          "kind": "número",
          "group": "Rotação X",
          "unit": "°",
          "help": "",
          "default": "0",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: posição/ângulo alvo do motor do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-position"
        },
        {
          "id": "angular_x_force",
          "name": "Força máxima",
          "kind": "número",
          "group": "Rotação X",
          "unit": "Nm",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: força/torque máximo do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-force"
        },
        {
          "id": "angular_x_frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Rotação X",
          "unit": "Hz",
          "help": "",
          "default": "2",
          "domain": "0.001 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: frequência da mola do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-frequency"
        },
        {
          "id": "angular_x_damping",
          "name": "Amortecimento",
          "kind": "número",
          "group": "Rotação X",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: amortecimento da mola do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-damping"
        },
        {
          "id": "angular_y_minimum",
          "name": "Limite mínimo",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "°",
          "help": "",
          "default": "-1",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite inferior do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-minimum"
        },
        {
          "id": "angular_y_maximum",
          "name": "Limite máximo",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "°",
          "help": "",
          "default": "1",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite superior do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-maximum"
        },
        {
          "id": "angular_y_friction",
          "name": "Atrito máximo",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "Nm",
          "help": "",
          "default": "0",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: fricção no grau de liberdade do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-friction"
        },
        {
          "id": "angular_y_velocity",
          "name": "Velocidade alvo",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "°/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: velocidade alvo do motor do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-velocity"
        },
        {
          "id": "angular_y_position",
          "name": "Posição alvo",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "°",
          "help": "",
          "default": "0",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: posição/ângulo alvo do motor do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-position"
        },
        {
          "id": "angular_y_force",
          "name": "Força máxima",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "Nm",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: força/torque máximo do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-force"
        },
        {
          "id": "angular_y_frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "Hz",
          "help": "",
          "default": "2",
          "domain": "0.001 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: frequência da mola do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-frequency"
        },
        {
          "id": "angular_y_damping",
          "name": "Amortecimento",
          "kind": "número",
          "group": "Rotação Y",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: amortecimento da mola do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-damping"
        },
        {
          "id": "angular_z_minimum",
          "name": "Limite mínimo",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "°",
          "help": "",
          "default": "-1",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite inferior do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-minimum"
        },
        {
          "id": "angular_z_maximum",
          "name": "Limite máximo",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "°",
          "help": "",
          "default": "1",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: limite superior do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-maximum"
        },
        {
          "id": "angular_z_friction",
          "name": "Atrito máximo",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "Nm",
          "help": "",
          "default": "0",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: fricção no grau de liberdade do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-friction"
        },
        {
          "id": "angular_z_velocity",
          "name": "Velocidade alvo",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "°/s",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: velocidade alvo do motor do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-velocity"
        },
        {
          "id": "angular_z_position",
          "name": "Posição alvo",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "°",
          "help": "",
          "default": "0",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: posição/ângulo alvo do motor do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-position"
        },
        {
          "id": "angular_z_force",
          "name": "Força máxima",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "Nm",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: força/torque máximo do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-force"
        },
        {
          "id": "angular_z_frequency",
          "name": "Frequência",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "Hz",
          "help": "",
          "default": "2",
          "domain": "0.001 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: frequência da mola do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-frequency"
        },
        {
          "id": "angular_z_damping",
          "name": "Amortecimento",
          "kind": "número",
          "group": "Rotação Z",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: amortecimento da mola do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-damping"
        },
        {
          "id": "enabled",
          "name": "Ativa",
          "kind": "booleano",
          "group": "",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-enabled"
        },
        {
          "id": "kind",
          "name": "Tipo",
          "kind": "enumeração",
          "group": "",
          "unit": "",
          "help": "",
          "default": "Distância",
          "domain": "Ponto | Dobradiça | Deslizante | Distância | Fixa | Cone | Swing / Twist | Configurável 6DOF | Mola",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe a variante de luz/junta no domínio indicado; siga os campos e requisitos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-kind"
        },
        {
          "id": "motor",
          "name": "Motor",
          "kind": "enumeração",
          "group": "Motor",
          "unit": "",
          "help": "",
          "default": "Desligado",
          "domain": "Desligado | Velocidade | Posição | Posição e velocidade",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Modo de motor da junta; exige tipo e limites compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-motor"
        },
        {
          "id": "linear_x_motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Translação X",
          "unit": "",
          "help": "",
          "default": "Travado",
          "domain": "Travado | Limitado | Livre",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: política livre/limitado/travado do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-motion"
        },
        {
          "id": "linear_x_motor",
          "name": "Motor",
          "kind": "enumeração",
          "group": "Translação X",
          "unit": "",
          "help": "",
          "default": "Desligado",
          "domain": "Desligado | Velocidade | Posição | Posição e velocidade",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: modo do motor do canal linear X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-x-motor"
        },
        {
          "id": "linear_y_motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Translação Y",
          "unit": "",
          "help": "",
          "default": "Travado",
          "domain": "Travado | Limitado | Livre",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: política livre/limitado/travado do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-motion"
        },
        {
          "id": "linear_y_motor",
          "name": "Motor",
          "kind": "enumeração",
          "group": "Translação Y",
          "unit": "",
          "help": "",
          "default": "Desligado",
          "domain": "Desligado | Velocidade | Posição | Posição e velocidade",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: modo do motor do canal linear Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-y-motor"
        },
        {
          "id": "linear_z_motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Translação Z",
          "unit": "",
          "help": "",
          "default": "Travado",
          "domain": "Travado | Limitado | Livre",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: política livre/limitado/travado do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-motion"
        },
        {
          "id": "linear_z_motor",
          "name": "Motor",
          "kind": "enumeração",
          "group": "Translação Z",
          "unit": "",
          "help": "",
          "default": "Desligado",
          "domain": "Desligado | Velocidade | Posição | Posição e velocidade",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: modo do motor do canal linear Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-linear-z-motor"
        },
        {
          "id": "angular_x_motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Rotação X",
          "unit": "",
          "help": "",
          "default": "Travado",
          "domain": "Travado | Limitado | Livre",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: política livre/limitado/travado do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-motion"
        },
        {
          "id": "angular_x_motor",
          "name": "Motor",
          "kind": "enumeração",
          "group": "Rotação X",
          "unit": "",
          "help": "",
          "default": "Desligado",
          "domain": "Desligado | Velocidade | Posição | Posição e velocidade",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: modo do motor do canal angular X. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-x-motor"
        },
        {
          "id": "angular_y_motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Rotação Y",
          "unit": "",
          "help": "",
          "default": "Travado",
          "domain": "Travado | Limitado | Livre",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: política livre/limitado/travado do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-motion"
        },
        {
          "id": "angular_y_motor",
          "name": "Motor",
          "kind": "enumeração",
          "group": "Rotação Y",
          "unit": "",
          "help": "",
          "default": "Desligado",
          "domain": "Desligado | Velocidade | Posição | Posição e velocidade",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: modo do motor do canal angular Y. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-y-motor"
        },
        {
          "id": "angular_z_motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Rotação Z",
          "unit": "",
          "help": "",
          "default": "Travado",
          "domain": "Travado | Limitado | Livre",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: política livre/limitado/travado do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-motion"
        },
        {
          "id": "angular_z_motor",
          "name": "Motor",
          "kind": "enumeração",
          "group": "Rotação Z",
          "unit": "",
          "help": "",
          "default": "Desligado",
          "domain": "Desligado | Velocidade | Posição | Posição e velocidade",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Junta: modo do motor do canal angular Z. O tipo de junta, modo e unidade definem quando tem efeito.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-angular-z-motor"
        },
        {
          "id": "connected_body",
          "name": "Conectar corpo",
          "kind": "referência",
          "group": "Âncoras",
          "unit": "",
          "help": "",
          "default": "Escolher corpo",
          "domain": "astra.physics.body · outro objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto com o corpo conectado; confira a cadeia de dependências.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-joint/#field-connected-body"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Nove mecanismos Jolt com limites, referenciais e motores",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Juntas** → **Junta**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics.dynamic_motor",
      "name": "Motor dinâmico",
      "description": "Locomoção por força e salto com apoio sobre Corpo físico dinâmico",
      "family": "Física 3D",
      "subfamily": "Corpos",
      "api": "DynamicBodyMotor",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_rigidbody3d.html",
      "aliases": "DynamicBodyMotor Rigidbody RigidBody3D Jogador Motor",
      "schemaVersion": 2,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics.body",
          "message": "Adicione Corpo físico dinâmico ao receptor"
        }
      ],
      "conflicts": [
        {
          "typeId": "astra.physics.character",
          "message": "Incompatível com personagem cápsula"
        }
      ],
      "properties": [
        {
          "id": "speed",
          "name": "Velocidade",
          "kind": "número",
          "group": "Locomoção",
          "unit": "m/s",
          "help": "",
          "default": "6",
          "domain": "0 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade de reprodução/percurso/motor na unidade do componente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-speed"
        },
        {
          "id": "acceleration",
          "name": "Aceleração",
          "kind": "número",
          "group": "Locomoção",
          "unit": "m/s²",
          "help": "",
          "default": "24",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limita a força de correção para atingir a velocidade alvo; usa a massa real, sem escrever Transform diretamente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-acceleration"
        },
        {
          "id": "braking",
          "name": "Frenagem",
          "kind": "número",
          "group": "Locomoção",
          "unit": "m/s²",
          "help": "",
          "default": "36",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limita a correção da velocidade quando não há comando de movimento.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-braking"
        },
        {
          "id": "air_control",
          "name": "Controle no ar",
          "kind": "número",
          "group": "Locomoção",
          "unit": "",
          "help": "",
          "default": "0.25",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplicador de controle enquanto sem apoio.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-air-control"
        },
        {
          "id": "jump_speed",
          "name": "Velocidade do salto",
          "kind": "número",
          "group": "Locomoção",
          "unit": "m/s",
          "help": "",
          "default": "6",
          "domain": "0 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade alvo inicial de salto.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-jump-speed"
        },
        {
          "id": "probe_height",
          "name": "Centro até os pés",
          "kind": "número",
          "group": "Chão",
          "unit": "m",
          "help": "Usado somente quando Apoio pela colisão está desligado.",
          "default": "1",
          "domain": "0.01 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Usado somente quando Apoio pela colisão está desligado.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-probe-height"
        },
        {
          "id": "probe_distance",
          "name": "Alcance abaixo dos pés",
          "kind": "número",
          "group": "Chão",
          "unit": "m",
          "help": "",
          "default": "0.15",
          "domain": "0.001 … 2",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Alcance da consulta de apoio.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-probe-distance"
        },
        {
          "id": "support_radius",
          "name": "Raio de sondagem",
          "kind": "número",
          "group": "Chão",
          "unit": "m",
          "help": "Usado somente quando Apoio pela colisão está desligado.",
          "default": "0.3",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Usado somente quando Apoio pela colisão está desligado.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-support-radius"
        },
        {
          "id": "max_slope",
          "name": "Rampa máxima",
          "kind": "número",
          "group": "Chão",
          "unit": "°",
          "help": "",
          "default": "50",
          "domain": "0 … 89",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Inclinação máxima de apoio do motor.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-max-slope"
        },
        {
          "id": "enabled",
          "name": "Habilitado",
          "kind": "booleano",
          "group": "Locomoção",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-enabled"
        },
        {
          "id": "inherit_platform_velocity",
          "name": "Acompanhar plataforma",
          "kind": "booleano",
          "group": "Chão",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Herda velocidade da plataforma de apoio quando permitido.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-inherit-platform-velocity"
        },
        {
          "id": "automatic_support",
          "name": "Apoio pela colisão",
          "kind": "booleano",
          "group": "Chão",
          "unit": "",
          "help": "Sonda a superfície real do colisor do solver, com escala, rotação e partes compostas. Cinco amostras; alcance abaixo da forma em metros.",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Sonda a superfície real do colisor do solver, com escala, rotação e partes compostas. Cinco amostras; alcance abaixo da forma em metros.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics-dynamic-motor/#field-automatic-support"
        }
      ],
      "guide": {
        "title": "Física 3D e motores",
        "route": "roadmap/fisica-3d",
        "use": "Resolva Corpo físico, Colisor e autoridade de pose antes de aplicar forças, motores ou juntas. Corpo dinâmico recebe forças; sensor emite sobreposição. Character e Motor dinâmico têm contratos próprios.",
        "example": "Crie chão estático e um corpo dinâmico com colisor. Compare queda, massa, atrito e restituição. Para sensor, conecte TriggerEnter a um Behavior como no HUD de corações.",
        "next": "Ampliar autoria/rebuild, geometria e apoio dos motores, juntas e diagnóstico por cenário. Fechamento deve incluir salvar/reabrir, remoção e gameplay no aparelho. Importação universal de todas as formas e controles não está declarada pronta.",
        "purpose": "Locomoção por força e salto com apoio sobre Corpo físico dinâmico",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 3D** / **Corpos** → **Motor dinâmico**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.animation",
      "name": "Animação",
      "description": "Clipes tocados e misturados no Play",
      "family": "Animação",
      "subfamily": "Clipes",
      "api": "Animation",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-Animation.html",
      "aliases": "Animation AnimationPlayer Clip",
      "schemaVersion": 4,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "speed",
          "name": "Velocidade",
          "kind": "número",
          "group": "Reprodução",
          "unit": "x",
          "help": "Velocidade inicial de cada clipe (AnimationState.speed); negativo toca de trás para frente",
          "default": "1",
          "domain": "-10 … 10",
          "limitation": "Translação, rotação e escala; pesos de morph não; sem mistura entre clipes",
          "capability": "animation.clip",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplica a velocidade de reprodução dos clipes; exige estado/recurso de animação válido.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-animation/#field-speed"
        },
        {
          "id": "enabled",
          "name": "Ativa",
          "kind": "booleano",
          "group": "Reprodução",
          "unit": "",
          "help": "Desligar suspende tempo e avaliação; religar retoma os estados",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "Translação, rotação e escala; pesos de morph não; sem mistura entre clipes",
          "capability": "animation.clip",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligar suspende tempo e avaliação; religar retoma os estados",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-animation/#field-enabled"
        },
        {
          "id": "play_automatically",
          "name": "Tocar ao iniciar",
          "kind": "booleano",
          "group": "Reprodução",
          "unit": "",
          "help": "Play Automatically: o clipe padrão começa a tocar quando o Play inicia",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "Translação, rotação e escala; pesos de morph não; sem mistura entre clipes",
          "capability": "animation.clip",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Play Automatically: o clipe padrão começa a tocar quando o Play inicia",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-animation/#field-play-automatically"
        },
        {
          "id": "wrap_mode",
          "name": "Repetição",
          "kind": "enumeração",
          "group": "Reprodução",
          "unit": "",
          "help": "Wrap Mode padrão dos clipes: o que acontece depois do fim",
          "default": "Repetir",
          "domain": "Uma vez | Repetir | Vai e volta | Segurar no fim",
          "limitation": "Translação, rotação e escala; pesos de morph não; sem mistura entre clipes",
          "capability": "animation.clip",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Wrap Mode padrão dos clipes: o que acontece depois do fim",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-animation/#field-wrap-mode"
        },
        {
          "id": "clip_count",
          "name": "Quantidade de clipes",
          "kind": "enumeração",
          "group": "Clipes",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32",
          "limitation": "Translação, rotação e escala; pesos de morph não; sem mistura entre clipes",
          "capability": "animation.clip",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Quantidade de entradas de clipe autoradas; recurso e estado de reprodução são separados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-animation/#field-clip-count"
        }
      ],
      "guide": {
        "title": "Animação e deformação",
        "route": "roadmap/animacao",
        "use": "Atribua clipes/recursos e escolha reprodução. SkinnedMesh precisa dos dados de deformação compatíveis; um nome de clip ou blend shape não cria esse recurso.",
        "example": "Use um recurso com clipe real, compare Speed 0/1 e modos de repetição; confira deformação e bounds antes de usar culling.",
        "next": "Ampliar importação, composição, edição de clipes e aceite de deformação/motion vectors. Timeline de UI é outro sistema e continua parcial. Não pressupõe Animator completo.",
        "purpose": "Clipes tocados e misturados no Play",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Animação** / **Clipes** → **Animação**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.field.gravity",
      "name": "Campo de gravidade 2D",
      "description": "Gravidade XY em área sobre corpos dinâmicos 2D",
      "family": "Física 2D",
      "subfamily": "Campos",
      "api": "GravityField2D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area2d.html",
      "aliases": "Area2D Gravity Zone",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-half-y"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-offset-y"
        },
        {
          "id": "vector_x",
          "name": "Vetor X",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-vector-x"
        },
        {
          "id": "vector_y",
          "name": "Vetor Y",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "-9.81",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-vector-y"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-wake-bodies"
        },
        {
          "id": "replace_world_gravity",
          "name": "Substituir gravidade do mundo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "Sobrepostos somam vetores e cancelam a gravidade padrão uma única vez",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Sobrepostos somam vetores e cancelam a gravidade padrão uma única vez",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-replace-world-gravity"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Retângulo",
          "domain": "Retângulo | Círculo",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-gravity/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Gravidade XY em área sobre corpos dinâmicos 2D",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Campos** → **Campo de gravidade 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.field.wind",
      "name": "Campo de vento 2D",
      "description": "Acoplamento XY à velocidade do ar com massa real",
      "family": "Física 2D",
      "subfamily": "Campos",
      "api": "WindField2D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area2d.html",
      "aliases": "Area2D Wind Vento",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-half-y"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-offset-y"
        },
        {
          "id": "vector_x",
          "name": "Vetor X",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s",
          "help": "",
          "default": "5",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-vector-x"
        },
        {
          "id": "vector_y",
          "name": "Vetor Y",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Componente do vetor de contribuição do campo, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-vector-y"
        },
        {
          "id": "coefficient",
          "name": "Acoplamento",
          "kind": "número",
          "group": "Efeito",
          "unit": "kg/s",
          "help": "",
          "default": "1",
          "domain": "0 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Coeficiente da contribuição de vento, combinado com o vetor/campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-coefficient"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-wake-bodies"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Retângulo",
          "domain": "Retângulo | Círculo",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-wind/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Acoplamento XY à velocidade do ar com massa real",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Campos** → **Campo de vento 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.field.drag",
      "name": "Campo de arrasto 2D",
      "description": "Amortecimento linear XY e angular de Body2D",
      "family": "Física 2D",
      "subfamily": "Campos",
      "api": "DragField2D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area2d.html",
      "aliases": "Area2D Damp Drag",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-half-y"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-offset-y"
        },
        {
          "id": "linear_drag",
          "name": "Arrasto linear",
          "kind": "número",
          "group": "Efeito",
          "unit": "1/s",
          "help": "",
          "default": "1",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Arrasto linear aplicado pelo campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-linear-drag"
        },
        {
          "id": "angular_drag",
          "name": "Arrasto angular",
          "kind": "número",
          "group": "Efeito",
          "unit": "1/s",
          "help": "",
          "default": "1",
          "domain": "0 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Arrasto angular aplicado pelo campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-angular-drag"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-wake-bodies"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Retângulo",
          "domain": "Retângulo | Círculo",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-drag/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Amortecimento linear XY e angular de Body2D",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Campos** → **Campo de arrasto 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.field.radial",
      "name": "Campo radial 2D",
      "description": "Atração, repulsão e vórtice no plano XY",
      "family": "Física 2D",
      "subfamily": "Campos",
      "api": "RadialField2D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area2d.html",
      "aliases": "Area2D Point Gravity Vortex",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia extensão X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia extensão Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-half-y"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "3",
          "domain": "0.001 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-radius"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Volume",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-offset-y"
        },
        {
          "id": "acceleration",
          "name": "Aceleração radial",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "-9.81",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aceleração radial em relação à origem do campo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-acceleration"
        },
        {
          "id": "tangential_acceleration",
          "name": "Aceleração tangencial",
          "kind": "número",
          "group": "Efeito",
          "unit": "m/s²",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Aceleração tangencial em torno da origem.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-tangential-acceleration"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Efeito",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-enabled"
        },
        {
          "id": "wake_bodies",
          "name": "Acordar corpos",
          "kind": "booleano",
          "group": "Alcance",
          "unit": "",
          "help": "Desligado: corpos em repouso permanecem dormindo",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Desligado: corpos em repouso permanecem dormindo",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-wake-bodies"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Volume",
          "unit": "",
          "help": "Escala e orientação são as do objeto e de seus pais",
          "default": "Retângulo",
          "domain": "Retângulo | Círculo",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escala e orientação são as do objeto e de seus pais",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-shape"
        },
        {
          "id": "falloff",
          "name": "Queda de influência",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "default": "Uniforme",
          "domain": "Uniforme | Linear | Suave",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Centro vale 1; Linear e Suave chegam a zero na borda",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-falloff"
        },
        {
          "id": "affected_layer",
          "name": "Camada afetada",
          "kind": "enumeração",
          "group": "Alcance",
          "unit": "",
          "help": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "default": "Todas",
          "domain": "Todas | Camada 0 | Camada 1 | Camada 2 | Camada 3 | Camada 4 | Camada 5 | Camada 6 | Camada 7 | Camada 8 | Camada 9 | Camada 10 | Camada 11 | Camada 12 | Camada 13 | Camada 14 | Camada 15 | Camada 16 | Camada 17 | Camada 18 | Camada 19 | Camada 20 | Camada 21 | Camada 22 | Camada 23 | Camada 24 | Camada 25 | Camada 26 | Camada 27 | Camada 28 | Camada 29 | Camada 30 | Camada 31",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Todas ou uma camada física do projeto; não altera a matriz de colisão",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-field-radial/#field-affected-layer"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Atração, repulsão e vórtice no plano XY",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Campos** → **Campo radial 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.event_connection",
      "name": "Conexão física 2D",
      "description": "Evento real de sensor/contato 2D altera ativação do receptor",
      "family": "Física 2D",
      "subfamily": "Eventos",
      "api": "PhysicsEventConnection2D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_area2d.html",
      "aliases": "Area2D Trigger2D Signal Evento Conexao",
      "schemaVersion": 1,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics2d.body",
          "message": "Adicione Body2D ao objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "enabled",
          "name": "Ativa",
          "kind": "booleano",
          "group": "Conexão",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-event-connection/#field-enabled"
        },
        {
          "id": "event",
          "name": "Evento",
          "kind": "enumeração",
          "group": "Conexão",
          "unit": "",
          "help": "Sensor exige um Colisor 2D sensor; contato exige uma forma sólida no emissor",
          "default": "Entrada sensor",
          "domain": "Entrada sensor | Perm. sensor | Saída sensor | Entrada contato | Perm. contato | Saída contato",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Sensor exige um Colisor 2D sensor; contato exige uma forma sólida no emissor",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-event-connection/#field-event"
        },
        {
          "id": "action",
          "name": "Ação",
          "kind": "enumeração",
          "group": "Conexão",
          "unit": "",
          "help": "Executada antes do callback C#; permanência pode disparar a cada passo físico",
          "default": "Desconectado",
          "domain": "Desconectado | Ativar objeto | Desativar objeto | Alternar objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Executada antes do callback C#; permanência pode disparar a cada passo físico",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-event-connection/#field-action"
        },
        {
          "id": "receiver",
          "name": "Receptor",
          "kind": "referência",
          "group": "Conexão",
          "unit": "",
          "help": "Objeto cuja ativação será alterada",
          "default": "Escolher objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Objeto cuja ativação será alterada",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-event-connection/#field-receiver"
        },
        {
          "id": "other_filter",
          "name": "Outro objeto",
          "kind": "referência",
          "group": "Filtro",
          "unit": "",
          "help": "Opcional: somente eventos com este outro objeto; vazio aceita todos",
          "default": "Qualquer objeto",
          "domain": "qualquer objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Opcional: somente eventos com este outro objeto; vazio aceita todos",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-event-connection/#field-other-filter"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Evento real de sensor/contato 2D altera ativação do receptor",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Eventos** → **Conexão física 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.constant-force",
      "name": "Força constante 2D",
      "description": "Força XY e torque contínuos sobre Body2D dinâmico",
      "family": "Física 2D",
      "subfamily": "Forças",
      "api": "ConstantForce2D",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/ScriptReference/ConstantForce2D.html",
      "aliases": "ConstantForce2D RelativeForce Propulsão",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics2d.body",
          "message": "Adicione Body2D ao objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "force_x",
          "name": "Força X",
          "kind": "número",
          "group": "Propulsão",
          "unit": "N",
          "help": "",
          "default": "0",
          "domain": "-1000000 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Força contínua em espaço mundial, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-constant-force/#field-force-x"
        },
        {
          "id": "force_y",
          "name": "Força Y",
          "kind": "número",
          "group": "Propulsão",
          "unit": "N",
          "help": "",
          "default": "0",
          "domain": "-1000000 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Força contínua em espaço mundial, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-constant-force/#field-force-y"
        },
        {
          "id": "relative_force_x",
          "name": "Força local X",
          "kind": "número",
          "group": "Propulsão",
          "unit": "N",
          "help": "",
          "default": "0",
          "domain": "-1000000 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Força contínua no espaço local do objeto, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-constant-force/#field-relative-force-x"
        },
        {
          "id": "relative_force_y",
          "name": "Força local Y",
          "kind": "número",
          "group": "Propulsão",
          "unit": "N",
          "help": "",
          "default": "0",
          "domain": "-1000000 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Força contínua no espaço local do objeto, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-constant-force/#field-relative-force-y"
        },
        {
          "id": "torque",
          "name": "Torque",
          "kind": "número",
          "group": "Propulsão",
          "unit": "N m",
          "help": "",
          "default": "0",
          "domain": "-1000000 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Torque contínuo sobre o Body2D dinâmico; não é orientação autoral.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-constant-force/#field-torque"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Propulsão",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-constant-force/#field-enabled"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Força XY e torque contínuos sobre Body2D dinâmico",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Forças** → **Força constante 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.joint",
      "name": "Junta 2D",
      "description": "Fixed/Weld, Revolute, Prismatic ou Distance reais",
      "family": "Física 2D",
      "subfamily": "Juntas",
      "api": "Joint2D",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/ScriptReference/Joint2D.html",
      "aliases": "Joint2D FixedJoint2D HingeJoint2D SliderJoint2D DistanceJoint2D Spring",
      "schemaVersion": 1,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics2d.body",
          "message": "Adicione Body2D ao objeto"
        }
      ],
      "conflicts": [],
      "properties": [
        {
          "id": "anchor_a_x",
          "name": "Anchor A X",
          "kind": "número",
          "group": "Anchors",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo A, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-anchor-a-x"
        },
        {
          "id": "anchor_a_y",
          "name": "Anchor A Y",
          "kind": "número",
          "group": "Anchors",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo A, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-anchor-a-y"
        },
        {
          "id": "anchor_b_x",
          "name": "Anchor B X",
          "kind": "número",
          "group": "Anchors",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo B, componente X. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-anchor-b-x"
        },
        {
          "id": "anchor_b_y",
          "name": "Anchor B Y",
          "kind": "número",
          "group": "Anchors",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição da âncora no frame do corpo B, componente Y. Configure os dois frames compatíveis.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-anchor-b-y"
        },
        {
          "id": "reference_angle_degrees",
          "name": "Ângulo referência",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ângulo de referência relativo da junta 2D em graus.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-reference-angle-degrees"
        },
        {
          "id": "axis_angle_degrees",
          "name": "Eixo local A",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Direção do eixo da junta 2D em graus.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-axis-angle-degrees"
        },
        {
          "id": "length",
          "name": "Comprimento repouso",
          "kind": "número",
          "group": "Ajustes",
          "unit": "m",
          "help": "",
          "default": "1",
          "domain": "0.005 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Comprimento de referência da junta Distance.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-length"
        },
        {
          "id": "min_length",
          "name": "Comprimento mínimo",
          "kind": "número",
          "group": "Ajustes",
          "unit": "m",
          "help": "",
          "default": "0.005",
          "domain": "0.005 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Comprimento mínimo da junta Distance.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-min-length"
        },
        {
          "id": "max_length",
          "name": "Comprimento máximo",
          "kind": "número",
          "group": "Ajustes",
          "unit": "m",
          "help": "",
          "default": "100",
          "domain": "0.005 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Comprimento máximo da junta Distance.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-max-length"
        },
        {
          "id": "lower_limit",
          "name": "Limite inferior",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "-1",
          "domain": "-178 … 178",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite inferior da junta 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-lower-limit"
        },
        {
          "id": "upper_limit",
          "name": "Limite superior",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-178 … 178",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite superior da junta 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-upper-limit"
        },
        {
          "id": "motor_speed",
          "name": "Velocidade motor",
          "kind": "número",
          "group": "Ajustes",
          "unit": "m/s",
          "help": "",
          "default": "1",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade linear alvo do motor da junta 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-motor-speed"
        },
        {
          "id": "motor_angular_speed_degrees",
          "name": "Motor angular",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus/s",
          "help": "",
          "default": "90",
          "domain": "-36000 … 36000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade angular alvo do motor 2D em graus/s.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-motor-angular-speed-degrees"
        },
        {
          "id": "max_motor_force",
          "name": "Força máxima motor",
          "kind": "número",
          "group": "Ajustes",
          "unit": "N",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite de força do motor linear 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-max-motor-force"
        },
        {
          "id": "max_motor_torque",
          "name": "Torque máximo motor",
          "kind": "número",
          "group": "Ajustes",
          "unit": "N m",
          "help": "",
          "default": "100",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Limite de torque do motor angular 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-max-motor-torque"
        },
        {
          "id": "spring_hertz",
          "name": "Frequência mola",
          "kind": "número",
          "group": "Ajustes",
          "unit": "Hz",
          "help": "",
          "default": "5",
          "domain": "0 … 120",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Frequência da mola 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-spring-hertz"
        },
        {
          "id": "spring_damping",
          "name": "Razão amortecimento",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "0.7",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento da mola da junta.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-spring-damping"
        },
        {
          "id": "spring_target_translation",
          "name": "Translação alvo",
          "kind": "número",
          "group": "Ajustes",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Translação alvo da mola 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-spring-target-translation"
        },
        {
          "id": "spring_target_angle_degrees",
          "name": "Ângulo alvo",
          "kind": "número",
          "group": "Ajustes",
          "unit": "graus",
          "help": "",
          "default": "0",
          "domain": "-180 … 180",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ângulo alvo da mola 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-spring-target-angle-degrees"
        },
        {
          "id": "linear_hertz",
          "name": "Mola linear weld",
          "kind": "número",
          "group": "Ajustes",
          "unit": "Hz",
          "help": "",
          "default": "0",
          "domain": "0 … 120",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Frequência da ligação linear 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-linear-hertz"
        },
        {
          "id": "angular_hertz",
          "name": "Mola angular weld",
          "kind": "número",
          "group": "Ajustes",
          "unit": "Hz",
          "help": "",
          "default": "0",
          "domain": "0 … 120",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Frequência da ligação angular 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-angular-hertz"
        },
        {
          "id": "linear_damping_ratio",
          "name": "Amortecimento linear weld",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Razão de amortecimento linear 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-linear-damping-ratio"
        },
        {
          "id": "angular_damping_ratio",
          "name": "Amortecimento angular weld",
          "kind": "número",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Razão de amortecimento angular 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-angular-damping-ratio"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Conexão",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-enabled"
        },
        {
          "id": "world_anchor",
          "name": "Conectar ao mundo",
          "kind": "booleano",
          "group": "Conexão",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Interpreta a âncora conforme a opção de mundo da junta 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-world-anchor"
        },
        {
          "id": "collide_connected",
          "name": "Colidir conectados",
          "kind": "booleano",
          "group": "Conexão",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Permite colisão entre os corpos conectados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-collide-connected"
        },
        {
          "id": "limit_enabled",
          "name": "Limites",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa os limites configurados da junta 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-limit-enabled"
        },
        {
          "id": "motor_enabled",
          "name": "Motor",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa motor da junta 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-motor-enabled"
        },
        {
          "id": "spring_enabled",
          "name": "Mola",
          "kind": "booleano",
          "group": "Ajustes",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa mola da junta 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-spring-enabled"
        },
        {
          "id": "kind",
          "name": "Modo",
          "kind": "enumeração",
          "group": "Conexão",
          "unit": "",
          "help": "",
          "default": "Fixed / Weld",
          "domain": "Fixed / Weld | Revolute | Prismatic | Distance",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe a variante de luz/junta no domínio indicado; siga os campos e requisitos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-kind"
        },
        {
          "id": "target",
          "name": "Corpo conectado",
          "kind": "referência",
          "group": "Conexão",
          "unit": "",
          "help": "",
          "default": "Escolher Body2D",
          "domain": "astra.physics2d.body · outro objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-joint/#field-target"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Fixed/Weld, Revolute, Prismatic ou Distance reais",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Juntas** → **Junta 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.body",
      "name": "Corpo 2D",
      "description": "Corpo XY independente de física 3D",
      "family": "Física 2D",
      "subfamily": "Corpos",
      "api": "Body2D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_rigidbody2d.html",
      "aliases": "Rigidbody2D RigidBody2D Kinematic XY",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [
        {
          "typeId": "astra.physics2d.collider",
          "message": "Adicione uma forma 2D ao corpo"
        }
      ],
      "conflicts": [
        {
          "typeId": "astra.physics.body",
          "message": "Corpos 2D e 3D não compartilham o mesmo objeto"
        },
        {
          "typeId": "astra.physics.character",
          "message": "Personagem 3D possui a pose deste objeto"
        },
        {
          "typeId": "astra.physics.collider",
          "message": "Colisores 2D e 3D usam mundos separados"
        }
      ],
      "properties": [
        {
          "id": "mass",
          "name": "Massa",
          "kind": "número",
          "group": "Corpo",
          "unit": "kg",
          "help": "",
          "default": "1",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Massa do corpo dinâmico em kg; influencia resposta a força/impulso.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-mass"
        },
        {
          "id": "gravity_scale",
          "name": "Escala gravidade",
          "kind": "número",
          "group": "Corpo",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-100 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Multiplica gravidade mundial deste corpo 2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-gravity-scale"
        },
        {
          "id": "velocity_x",
          "name": "Velocidade X",
          "kind": "número",
          "group": "Movimento",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade linear inicial/autorada do corpo, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-velocity-x"
        },
        {
          "id": "velocity_y",
          "name": "Velocidade Y",
          "kind": "número",
          "group": "Movimento",
          "unit": "m/s",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade linear inicial/autorada do corpo, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-velocity-y"
        },
        {
          "id": "angular_velocity_degrees",
          "name": "Velocidade angular",
          "kind": "número",
          "group": "Movimento",
          "unit": "graus/s",
          "help": "",
          "default": "0",
          "domain": "-36000 … 36000",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade angular 2D em graus/s; não confundir com rad/s da API matemática.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-angular-velocity-degrees"
        },
        {
          "id": "linear_damping",
          "name": "Arrasto linear",
          "kind": "número",
          "group": "Movimento",
          "unit": "",
          "help": "",
          "default": "0.05",
          "domain": "0 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento de velocidade linear.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-linear-damping"
        },
        {
          "id": "angular_damping",
          "name": "Arrasto angular",
          "kind": "número",
          "group": "Movimento",
          "unit": "",
          "help": "",
          "default": "0.05",
          "domain": "0 … 100",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Amortecimento de velocidade angular.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-angular-damping"
        },
        {
          "id": "fixed_rotation",
          "name": "Fixar rotação",
          "kind": "booleano",
          "group": "Movimento",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Trava a rotação física do Body2D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-fixed-rotation"
        },
        {
          "id": "allow_sleep",
          "name": "Permitir repouso",
          "kind": "booleano",
          "group": "Movimento",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Permite dormir quando o corpo pode ficar em repouso.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-allow-sleep"
        },
        {
          "id": "motion",
          "name": "Movimento",
          "kind": "enumeração",
          "group": "Corpo",
          "unit": "",
          "help": "",
          "default": "Dinâmico",
          "domain": "Estático | Cinemático | Dinâmico",
          "limitation": "",
          "capability": "",
          "invalidation": "corpo físico",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe autoridade estática/cinemática/dinâmica no domínio do corpo.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-body/#field-motion"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Corpo XY independente de física 3D",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Corpos** → **Corpo 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.physics2d.collider",
      "name": "Colisor 2D",
      "description": "Caixa, círculo ou cápsula; sensor real",
      "family": "Física 2D",
      "subfamily": "Formas",
      "api": "Collider2D",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_collisionshape2d.html",
      "aliases": "CollisionShape2D Box Circle Capsule Sensor Trigger",
      "schemaVersion": 1,
      "allowMultiple": true,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [
        {
          "typeId": "astra.physics.body",
          "message": "Corpos 2D e 3D não compartilham o mesmo objeto"
        },
        {
          "typeId": "astra.physics.character",
          "message": "Personagem 3D possui a pose deste objeto"
        },
        {
          "typeId": "astra.physics.collider",
          "message": "Colisores 2D e 3D usam mundos separados"
        }
      ],
      "properties": [
        {
          "id": "half_x",
          "name": "Meia largura",
          "kind": "número",
          "group": "Forma",
          "unit": "m",
          "help": "",
          "default": "0.5",
          "domain": "0.005 … 500",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-half-x"
        },
        {
          "id": "half_y",
          "name": "Meia altura",
          "kind": "número",
          "group": "Forma",
          "unit": "m",
          "help": "",
          "default": "0.5",
          "domain": "0.005 … 500",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Meia dimensão da forma/volume no eixo indicado. Dimensão total é o dobro; aplica-se à forma selecionada.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-half-y"
        },
        {
          "id": "radius",
          "name": "Raio",
          "kind": "número",
          "group": "Forma",
          "unit": "m",
          "help": "",
          "default": "0.5",
          "domain": "0.005 … 500",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Raio da forma/volume selecionado; confira o tipo e os campos condicionais.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-radius"
        },
        {
          "id": "capsule_half_length",
          "name": "Meia distância centros",
          "kind": "número",
          "group": "Forma",
          "unit": "m",
          "help": "",
          "default": "0.5",
          "domain": "0.005 … 500",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Metade da distância entre centros da cápsula 2D; raio é configurado separadamente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-capsule-half-length"
        },
        {
          "id": "offset_x",
          "name": "Centro X",
          "kind": "número",
          "group": "Forma",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Centro Y",
          "kind": "número",
          "group": "Forma",
          "unit": "m",
          "help": "",
          "default": "0",
          "domain": "-1000 … 1000",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-offset-y"
        },
        {
          "id": "friction",
          "name": "Atrito",
          "kind": "número",
          "group": "Contato",
          "unit": "",
          "help": "",
          "default": "0.5",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Atrito nos contatos; compare deslizamento com o mesmo par de superfícies.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-friction"
        },
        {
          "id": "restitution",
          "name": "Restituição",
          "kind": "número",
          "group": "Contato",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Restituição nos contatos; controla ressalto conforme a combinação física.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-restitution"
        },
        {
          "id": "sensor",
          "name": "Sensor sem resposta",
          "kind": "booleano",
          "group": "Contato",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Participa como sensor/sobreposição; não é uma superfície sólida de contato.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-sensor"
        },
        {
          "id": "shape",
          "name": "Forma",
          "kind": "enumeração",
          "group": "Forma",
          "unit": "",
          "help": "",
          "default": "Caixa",
          "domain": "Caixa | Círculo | Cápsula Y",
          "limitation": "",
          "capability": "",
          "invalidation": "forma física",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Escolhe a geometria do colisor/campo no domínio indicado; os campos relevantes mudam por forma.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-physics2d-collider/#field-shape"
        }
      ],
      "guide": {
        "title": "Física 2D",
        "route": "roadmap/fisica-2d",
        "use": "Monte Body2D + Colisor 2D no plano XY. Juntas, forças e campos 2D operam nessa simulação; não compartilham automaticamente contatos com corpos 3D.",
        "example": "Coloque uma caixa 2D dinâmica sobre um chão 2D estático. Compare escala de gravidade e rotação travada. Conexão física 2D pode ativar um receptor ao entrar no sensor.",
        "next": "Fechar autoria e cenários de solver/eventos/queries no Android; ampliar formas e juntas somente com consumidores. Física 2D presente não representa renderização Sprite/Tilemap completa.",
        "purpose": "Caixa, círculo ou cápsula; sensor real",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Física 2D** / **Formas** → **Colisor 2D**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.audio.source",
      "name": "Audio Source",
      "description": "Clipe de projeto com reprodução e espaço acústico",
      "family": "Áudio",
      "subfamily": "Reprodução",
      "api": "AudioSource",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-AudioSource.html",
      "aliases": "AudioSource AudioStreamPlayer AudioStreamPlayer3D som WAV",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "volume",
          "name": "Volume",
          "kind": "número",
          "group": "Som",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ganho linear de áudio do consumidor correspondente; 0 silencia e 1 conserva ganho unitário.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-volume"
        },
        {
          "id": "pitch",
          "name": "Velocidade / pitch",
          "kind": "número",
          "group": "Reprodução",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0.1 … 4",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade/pitch da reprodução; não altera o arquivo original.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-pitch"
        },
        {
          "id": "pan",
          "name": "Pan estéreo",
          "kind": "número",
          "group": "Espaço",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-1 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Pan estéreo, de esquerda a direita; é condicional à espacialização.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-pan"
        },
        {
          "id": "min_distance",
          "name": "Distância mínima",
          "kind": "número",
          "group": "Espaço",
          "unit": "m",
          "help": "",
          "default": "1",
          "domain": "0.01 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Distância próxima de referência da atenuação 3D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-min-distance"
        },
        {
          "id": "max_distance",
          "name": "Distância máxima",
          "kind": "número",
          "group": "Espaço",
          "unit": "m",
          "help": "",
          "default": "100",
          "domain": "0.02 … 100001",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Distância máxima de referência da atenuação 3D.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-max-distance"
        },
        {
          "id": "rolloff_factor",
          "name": "Decaimento",
          "kind": "número",
          "group": "Espaço",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 10",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator de queda de ganho do modelo de atenuação.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-rolloff-factor"
        },
        {
          "id": "cone_inner",
          "name": "Cone interno",
          "kind": "número",
          "group": "Emissão",
          "unit": "°",
          "help": "",
          "default": "360",
          "domain": "0 … 360",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ângulo interno do cone acústico.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-cone-inner"
        },
        {
          "id": "cone_outer",
          "name": "Cone externo",
          "kind": "número",
          "group": "Emissão",
          "unit": "°",
          "help": "",
          "default": "360",
          "domain": "0 … 360",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ângulo externo do cone acústico.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-cone-outer"
        },
        {
          "id": "cone_gain",
          "name": "Ganho fora do cone",
          "kind": "número",
          "group": "Emissão",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ganho fora da região interna do cone.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-cone-gain"
        },
        {
          "id": "doppler",
          "name": "Doppler",
          "kind": "número",
          "group": "Emissão",
          "unit": "×",
          "help": "",
          "default": "1",
          "domain": "0 … 4",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fator do efeito Doppler.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-doppler"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Som",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-enabled"
        },
        {
          "id": "mute",
          "name": "Silenciar",
          "kind": "booleano",
          "group": "Som",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Silencia sem remover o componente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-mute"
        },
        {
          "id": "loop",
          "name": "Repetir",
          "kind": "booleano",
          "group": "Reprodução",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Repete a reprodução/percurso no fim.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-loop"
        },
        {
          "id": "playback",
          "name": "Pedido",
          "kind": "enumeração",
          "group": "Reprodução",
          "unit": "",
          "help": "Pedido persistido; consulte o estado real na nota do componente.",
          "default": "Tocar",
          "domain": "Parar | Tocar | Pausar",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Pedido persistido; consulte o estado real na nota do componente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-playback"
        },
        {
          "id": "dimension",
          "name": "Dimensão",
          "kind": "enumeração",
          "group": "Espaço",
          "unit": "",
          "help": "",
          "default": "2D / estéreo",
          "domain": "2D / estéreo | 3D / espacial",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona áudio estéreo ou espacial conforme o domínio.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-dimension"
        },
        {
          "id": "rolloff",
          "name": "Atenuação",
          "kind": "enumeração",
          "group": "Espaço",
          "unit": "",
          "help": "",
          "default": "Inverso",
          "domain": "Linear | Inverso | Exponencial",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Modelo de atenuação por distância.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-rolloff"
        },
        {
          "id": "bus",
          "name": "Bus",
          "kind": "referência",
          "group": "Som",
          "unit": "",
          "help": "",
          "default": "Master",
          "domain": "astra.audio.bus",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Destino de mixer da fonte.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-source/#field-bus"
        }
      ],
      "guide": {
        "title": "Áudio",
        "route": "roadmap/audio",
        "use": "Atribua um clipe do projeto ao Audio Source e confira reprodução, volume, mute e bus. Escolha escuta e espacialização; prioridade decide o listener efetivo.",
        "example": "Um Audio Source e um Audio Listener: toque um clipe, altere volume/mute e depois compare estéreo com 3D movendo a fonte.",
        "next": "Ampliar transporte, formatos, mixer e diagnóstico de backend. Seek não deve ser presumido como disponível porque há cursor de reprodução. Conferir saída física no aparelho é uma evidência separada.",
        "purpose": "Clipe de projeto com reprodução e espaço acústico",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Áudio** / **Reprodução** → **Audio Source**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.audio.listener",
      "name": "Audio Listener",
      "description": "Pose e volume de escuta escolhidos por prioridade",
      "family": "Áudio",
      "subfamily": "Escuta",
      "api": "AudioListener",
      "reference": "https://docs.unity3d.com/6000.0/Documentation/Manual/class-AudioListener.html",
      "aliases": "AudioListener AudioListener3D escuta",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "volume",
          "name": "Volume global",
          "kind": "número",
          "group": "Escuta",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ganho linear de áudio do consumidor correspondente; 0 silencia e 1 conserva ganho unitário.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-listener/#field-volume"
        },
        {
          "id": "priority",
          "name": "Prioridade",
          "kind": "número",
          "group": "Escuta",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "0 … 255",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Prioridade entre candidatos do mesmo sistema; compare o consumidor efetivo, não só o número no Inspector.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-listener/#field-priority"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Escuta",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-listener/#field-enabled"
        }
      ],
      "guide": {
        "title": "Áudio",
        "route": "roadmap/audio",
        "use": "Atribua um clipe do projeto ao Audio Source e confira reprodução, volume, mute e bus. Escolha escuta e espacialização; prioridade decide o listener efetivo.",
        "example": "Um Audio Source e um Audio Listener: toque um clipe, altere volume/mute e depois compare estéreo com 3D movendo a fonte.",
        "next": "Ampliar transporte, formatos, mixer e diagnóstico de backend. Seek não deve ser presumido como disponível porque há cursor de reprodução. Conferir saída física no aparelho é uma evidência separada.",
        "purpose": "Pose e volume de escuta escolhidos por prioridade",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Áudio** / **Escuta** → **Audio Listener**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.audio.bus",
      "name": "Audio Bus",
      "description": "Roteamento de ganho, mute e solo até Master",
      "family": "Áudio",
      "subfamily": "Mixer",
      "api": "AudioBus",
      "reference": "https://docs.godotengine.org/en/4.5/tutorials/audio/audio_buses.html",
      "aliases": "AudioMixerGroup AudioServer bus mixer",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "volume",
          "name": "Ganho",
          "kind": "número",
          "group": "Mixer",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "0 … 1",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ganho linear de áudio do consumidor correspondente; 0 silencia e 1 conserva ganho unitário.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-bus/#field-volume"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Mixer",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-bus/#field-enabled"
        },
        {
          "id": "mute",
          "name": "Silenciar",
          "kind": "booleano",
          "group": "Mixer",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Silencia sem remover o componente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-bus/#field-mute"
        },
        {
          "id": "solo",
          "name": "Solo",
          "kind": "booleano",
          "group": "Mixer",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Isola esse bus conforme o roteamento do mixer.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-bus/#field-solo"
        },
        {
          "id": "output",
          "name": "Saída",
          "kind": "referência",
          "group": "Mixer",
          "unit": "",
          "help": "",
          "default": "Master",
          "domain": "astra.audio.bus · outro objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "nada",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Bus de saída; confira ciclos e destino Master.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-audio-bus/#field-output"
        }
      ],
      "guide": {
        "title": "Áudio",
        "route": "roadmap/audio",
        "use": "Atribua um clipe do projeto ao Audio Source e confira reprodução, volume, mute e bus. Escolha escuta e espacialização; prioridade decide o listener efetivo.",
        "example": "Um Audio Source e um Audio Listener: toque um clipe, altere volume/mute e depois compare estéreo com 3D movendo a fonte.",
        "next": "Ampliar transporte, formatos, mixer e diagnóstico de backend. Seek não deve ser presumido como disponível porque há cursor de reprodução. Conferir saída física no aparelho é uma evidência separada.",
        "purpose": "Roteamento de ganho, mute e solo até Master",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Áudio** / **Mixer** → **Audio Bus**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.path",
      "name": "Path",
      "description": "Curva Bézier local com pontos persistentes",
      "family": "Lógica",
      "subfamily": "Caminhos",
      "api": "PathComponent",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_path3d.html",
      "aliases": "Path Curve3D Spline Caminho Bezier",
      "schemaVersion": 2,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "up_x",
          "name": "Up X",
          "kind": "número",
          "group": "Orientação",
          "unit": "",
          "help": "Up inicial local; vetor zero é inválido.",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Up inicial local; vetor zero é inválido.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-up-x"
        },
        {
          "id": "up_y",
          "name": "Up Y",
          "kind": "número",
          "group": "Orientação",
          "unit": "",
          "help": "",
          "default": "1",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Vetor vertical inicial do frame do caminho; vetor total zero é inválido, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-up-y"
        },
        {
          "id": "up_z",
          "name": "Up Z",
          "kind": "número",
          "group": "Orientação",
          "unit": "",
          "help": "",
          "default": "0",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Vetor vertical inicial do frame do caminho; vetor total zero é inválido, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-up-z"
        },
        {
          "id": "closed",
          "name": "Fechado",
          "kind": "booleano",
          "group": "Caminho",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Fecha a curva ligando o último ponto ao primeiro.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-closed"
        },
        {
          "id": "point_position_x",
          "name": "Posição X",
          "kind": "número",
          "group": "Posição",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição local do ponto selecionado da curva, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-position-x"
        },
        {
          "id": "point_position_y",
          "name": "Posição Y",
          "kind": "número",
          "group": "Posição",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição local do ponto selecionado da curva, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-position-y"
        },
        {
          "id": "point_position_z",
          "name": "Posição Z",
          "kind": "número",
          "group": "Posição",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Posição local do ponto selecionado da curva, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-position-z"
        },
        {
          "id": "point_in_x",
          "name": "Entrada X",
          "kind": "número",
          "group": "Tangentes",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Tangente de entrada do ponto selecionado da curva, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-in-x"
        },
        {
          "id": "point_in_y",
          "name": "Entrada Y",
          "kind": "número",
          "group": "Tangentes",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Tangente de entrada do ponto selecionado da curva, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-in-y"
        },
        {
          "id": "point_in_z",
          "name": "Entrada Z",
          "kind": "número",
          "group": "Tangentes",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Tangente de entrada do ponto selecionado da curva, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-in-z"
        },
        {
          "id": "point_out_x",
          "name": "Saída X",
          "kind": "número",
          "group": "Tangentes",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Tangente de saída do ponto selecionado da curva, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-out-x"
        },
        {
          "id": "point_out_y",
          "name": "Saída Y",
          "kind": "número",
          "group": "Tangentes",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Tangente de saída do ponto selecionado da curva, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-out-y"
        },
        {
          "id": "point_out_z",
          "name": "Saída Z",
          "kind": "número",
          "group": "Tangentes",
          "unit": "u",
          "help": "",
          "default": "",
          "domain": "-100000 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Tangente de saída do ponto selecionado da curva, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-out-z"
        },
        {
          "id": "point_roll",
          "name": "Roll",
          "kind": "número",
          "group": "Orientação",
          "unit": "°",
          "help": "Ângulo contínuo, sem reduzir módulo 360.",
          "default": "",
          "domain": "-3600 … 3600",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": true,
          "tweenable": false,
          "slots": 0,
          "usage": "Ângulo contínuo, sem reduzir módulo 360.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path/#field-point-roll"
        }
      ],
      "guide": {
        "title": "Caminhos e seguidores",
        "route": "roadmap/caminhos",
        "use": "Crie Path com pontos/tangentes persistentes e atribua o objeto ao Path Follow. Distância e orientação dependem da curva e da pose mundial.",
        "example": "Autore uma curva com três pontos, atribua o alvo e percorra em velocidade constante; salve/reabra os pontos e compare orientação +Z e direção reversa.",
        "next": "Aprofundar ferramentas de pontos/tangentes, visualização e cenários de escala/lifecycle. Path não é navmesh, pathfinding ou spline universal importada.",
        "purpose": "Curva Bézier local com pontos persistentes",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Caminhos** → **Path**.",
        "extra": ""
      }
    },
    {
      "typeId": "astra.path.follow",
      "name": "Path Follow",
      "description": "Percorre curva em distância mundial e orienta +Z",
      "family": "Lógica",
      "subfamily": "Caminhos",
      "api": "PathFollow",
      "reference": "https://docs.godotengine.org/en/4.5/classes/class_pathfollow3d.html",
      "aliases": "Path Follow Caminho Curva Percurso",
      "schemaVersion": 1,
      "allowMultiple": false,
      "listedInAdd": true,
      "structuralInPlay": "ponto seguro",
      "propertiesInPlay": "ponto seguro",
      "requirements": [],
      "conflicts": [],
      "properties": [
        {
          "id": "progress_distance",
          "name": "Distância inicial",
          "kind": "número",
          "group": "Percurso",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "0 … 1000000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Distância inicial mundial ao longo da curva.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-progress-distance"
        },
        {
          "id": "speed",
          "name": "Velocidade",
          "kind": "número",
          "group": "Percurso",
          "unit": "u/s",
          "help": "",
          "default": "1",
          "domain": "0 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Velocidade de reprodução/percurso/motor na unidade do componente.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-speed"
        },
        {
          "id": "duration",
          "name": "Duração",
          "kind": "número",
          "group": "Percurso",
          "unit": "s",
          "help": "",
          "default": "5",
          "domain": "0.001 … 100000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Tempo para completar o percurso no modo por duração; modo velocidade usa Speed.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-duration"
        },
        {
          "id": "offset_x",
          "name": "Deslocamento lateral",
          "kind": "número",
          "group": "Orientação",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo X.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-offset-x"
        },
        {
          "id": "offset_y",
          "name": "Deslocamento vertical",
          "kind": "número",
          "group": "Orientação",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Y.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-offset-y"
        },
        {
          "id": "offset_z",
          "name": "Deslocamento tangente",
          "kind": "número",
          "group": "Orientação",
          "unit": "u",
          "help": "",
          "default": "0",
          "domain": "-10000 … 10000",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": true,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Deslocamento do resultado/volume em relação à origem configurada, eixo Z.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-offset-z"
        },
        {
          "id": "enabled",
          "name": "Ativo",
          "kind": "booleano",
          "group": "Execução",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Ativa/desativa a participação do componente no sistema consumidor; não remove seus dados.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-enabled"
        },
        {
          "id": "autoplay",
          "name": "Iniciar no Play",
          "kind": "booleano",
          "group": "Execução",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Inicia a reprodução automaticamente ao ativar a execução; não é o mesmo que repetição.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-autoplay"
        },
        {
          "id": "loop",
          "name": "Repetir percurso",
          "kind": "booleano",
          "group": "Execução",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Repete a reprodução/percurso no fim.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-loop"
        },
        {
          "id": "backwards",
          "name": "Sentido inverso",
          "kind": "booleano",
          "group": "Execução",
          "unit": "",
          "help": "",
          "default": "falso",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Percorre a curva na direção reversa.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-backwards"
        },
        {
          "id": "orient",
          "name": "Orientar +Z",
          "kind": "booleano",
          "group": "Orientação",
          "unit": "",
          "help": "",
          "default": "verdadeiro",
          "domain": "verdadeiro | falso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Alinha orientação ao frame do caminho.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-orient"
        },
        {
          "id": "mode",
          "name": "Avanço",
          "kind": "enumeração",
          "group": "Percurso",
          "unit": "",
          "help": "",
          "default": "Velocidade mundial",
          "domain": "Velocidade mundial | Duração do percurso",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Seleciona o modo do componente no domínio indicado; revise os campos que aparecem após trocar.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-mode"
        },
        {
          "id": "target",
          "name": "Caminho",
          "kind": "referência",
          "group": "Percurso",
          "unit": "",
          "help": "",
          "default": "Escolher Path",
          "domain": "astra.path · outro objeto",
          "limitation": "",
          "capability": "",
          "invalidation": "pose e bounds",
          "conditional": false,
          "restrictedWrite": false,
          "perSlot": false,
          "tweenable": false,
          "slots": 0,
          "usage": "Referência a objeto fonte/alvo usada por este componente. Atribua pelo seletor; nome sozinho não mantém identidade.",
          "url": "/pt-br/snapshot-2026-10-06/componentes/astra-path-follow/#field-target"
        }
      ],
      "guide": {
        "title": "Caminhos e seguidores",
        "route": "roadmap/caminhos",
        "use": "Crie Path com pontos/tangentes persistentes e atribua o objeto ao Path Follow. Distância e orientação dependem da curva e da pose mundial.",
        "example": "Autore uma curva com três pontos, atribua o alvo e percorra em velocidade constante; salve/reabra os pontos e compare orientação +Z e direção reversa.",
        "next": "Aprofundar ferramentas de pontos/tangentes, visualização e cenários de escala/lifecycle. Path não é navmesh, pathfinding ou spline universal importada.",
        "purpose": "Percorre curva em distância mundial e orienta +Z",
        "location": "Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **Caminhos** → **Path Follow**.",
        "extra": ""
      }
    }
  ]
}