// @generated by protoc-gen-es v2.13.0 with parameter "target=ts,import_extension=js"
// @generated from file soulfire/domain.proto (package soulfire.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
import { file_google_protobuf_struct } from "@bufbuild/protobuf/wkt";
import type { GameMode } from "./bot_pb.js";
import { file_soulfire_bot } from "./bot_pb.js";
import type { BlockPosition, WorldPosition } from "./common_pb.js";
import { file_soulfire_common } from "./common_pb.js";
import type { JsonObject, Message } from "@bufbuild/protobuf";

/**
 * Describes the file soulfire/domain.proto.
 */
export const file_soulfire_domain: GenFile = /*@__PURE__*/
  fileDesc(" ", [file_google_protobuf_struct, file_soulfire_bot, file_soulfire_common]);

/**
 * A dimension-independent three-dimensional vector.
 *
 * @generated from message soulfire.v1.Vec3
 */
export type Vec3 = Message<"soulfire.v1.Vec3"> & {
  /**
   * @generated from field: double x = 1;
   */
  x: number;

  /**
   * @generated from field: double y = 2;
   */
  y: number;

  /**
   * @generated from field: double z = 3;
   */
  z: number;
};

/**
 * Describes the message soulfire.v1.Vec3.
 * Use `create(Vec3Schema)` to create a new message.
 */
export const Vec3Schema: GenMessage<Vec3> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 0);

/**
 * @generated from message soulfire.v1.Rotation
 */
export type Rotation = Message<"soulfire.v1.Rotation"> & {
  /**
   * @generated from field: float yaw = 1;
   */
  yaw: number;

  /**
   * @generated from field: float pitch = 2;
   */
  pitch: number;

  /**
   * @generated from field: optional float head_yaw = 3;
   */
  headYaw?: number | undefined;
};

/**
 * Describes the message soulfire.v1.Rotation.
 * Use `create(RotationSchema)` to create a new message.
 */
export const RotationSchema: GenMessage<Rotation> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 1);

/**
 * @generated from message soulfire.v1.BoundingBox
 */
export type BoundingBox = Message<"soulfire.v1.BoundingBox"> & {
  /**
   * @generated from field: soulfire.v1.Vec3 minimum = 1;
   */
  minimum?: Vec3 | undefined;

  /**
   * @generated from field: soulfire.v1.Vec3 maximum = 2;
   */
  maximum?: Vec3 | undefined;
};

/**
 * Describes the message soulfire.v1.BoundingBox.
 * Use `create(BoundingBoxSchema)` to create a new message.
 */
export const BoundingBoxSchema: GenMessage<BoundingBox> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 2);

/**
 * Both renderable and plain representations of a Minecraft text component.
 *
 * @generated from message soulfire.v1.TextComponent
 */
export type TextComponent = Message<"soulfire.v1.TextComponent"> & {
  /**
   * @generated from field: string plain_text = 1;
   */
  plainText: string;

  /**
   * @generated from field: optional string json = 2;
   */
  json?: string | undefined;
};

/**
 * Describes the message soulfire.v1.TextComponent.
 * Use `create(TextComponentSchema)` to create a new message.
 */
export const TextComponentSchema: GenMessage<TextComponent> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 3);

/**
 * @generated from message soulfire.v1.EnchantmentSnapshot
 */
export type EnchantmentSnapshot = Message<"soulfire.v1.EnchantmentSnapshot"> & {
  /**
   * @generated from field: string enchantment_id = 1;
   */
  enchantmentId: string;

  /**
   * @generated from field: int32 level = 2;
   */
  level: number;
};

/**
 * Describes the message soulfire.v1.EnchantmentSnapshot.
 * Use `create(EnchantmentSnapshotSchema)` to create a new message.
 */
export const EnchantmentSnapshotSchema: GenMessage<EnchantmentSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 4);

/**
 * @generated from message soulfire.v1.EffectSnapshot
 */
export type EffectSnapshot = Message<"soulfire.v1.EffectSnapshot"> & {
  /**
   * @generated from field: string effect_id = 1;
   */
  effectId: string;

  /**
   * @generated from field: int32 amplifier = 2;
   */
  amplifier: number;

  /**
   * @generated from field: int32 duration_ticks = 3;
   */
  durationTicks: number;

  /**
   * @generated from field: bool ambient = 4;
   */
  ambient: boolean;

  /**
   * @generated from field: bool visible = 5;
   */
  visible: boolean;

  /**
   * @generated from field: bool show_icon = 6;
   */
  showIcon: boolean;
};

/**
 * Describes the message soulfire.v1.EffectSnapshot.
 * Use `create(EffectSnapshotSchema)` to create a new message.
 */
export const EffectSnapshotSchema: GenMessage<EffectSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 5);

/**
 * @generated from message soulfire.v1.AttributeModifierSnapshot
 */
export type AttributeModifierSnapshot = Message<"soulfire.v1.AttributeModifierSnapshot"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: double amount = 2;
   */
  amount: number;

  /**
   * @generated from field: string operation = 3;
   */
  operation: string;
};

/**
 * Describes the message soulfire.v1.AttributeModifierSnapshot.
 * Use `create(AttributeModifierSnapshotSchema)` to create a new message.
 */
export const AttributeModifierSnapshotSchema: GenMessage<AttributeModifierSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 6);

/**
 * @generated from message soulfire.v1.AttributeSnapshot
 */
export type AttributeSnapshot = Message<"soulfire.v1.AttributeSnapshot"> & {
  /**
   * @generated from field: string attribute_id = 1;
   */
  attributeId: string;

  /**
   * @generated from field: double base_value = 2;
   */
  baseValue: number;

  /**
   * @generated from field: double value = 3;
   */
  value: number;

  /**
   * @generated from field: repeated soulfire.v1.AttributeModifierSnapshot modifiers = 4;
   */
  modifiers: AttributeModifierSnapshot[];
};

/**
 * Describes the message soulfire.v1.AttributeSnapshot.
 * Use `create(AttributeSnapshotSchema)` to create a new message.
 */
export const AttributeSnapshotSchema: GenMessage<AttributeSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 7);

/**
 * @generated from message soulfire.v1.FoodProperties
 */
export type FoodProperties = Message<"soulfire.v1.FoodProperties"> & {
  /**
   * @generated from field: int32 nutrition = 1;
   */
  nutrition: number;

  /**
   * @generated from field: float saturation_modifier = 2;
   */
  saturationModifier: number;

  /**
   * @generated from field: bool can_always_eat = 3;
   */
  canAlwaysEat: boolean;

  /**
   * @generated from field: float eat_seconds = 4;
   */
  eatSeconds: number;
};

/**
 * Describes the message soulfire.v1.FoodProperties.
 * Use `create(FoodPropertiesSchema)` to create a new message.
 */
export const FoodPropertiesSchema: GenMessage<FoodProperties> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 8);

/**
 * @generated from message soulfire.v1.ToolProperties
 */
export type ToolProperties = Message<"soulfire.v1.ToolProperties"> & {
  /**
   * @generated from field: repeated string tool_tags = 1;
   */
  toolTags: string[];

  /**
   * @generated from field: float default_mining_speed = 2;
   */
  defaultMiningSpeed: number;

  /**
   * @generated from field: int32 harvest_level = 3;
   */
  harvestLevel: number;
};

/**
 * Describes the message soulfire.v1.ToolProperties.
 * Use `create(ToolPropertiesSchema)` to create a new message.
 */
export const ToolPropertiesSchema: GenMessage<ToolProperties> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 9);

/**
 * @generated from message soulfire.v1.ArmorProperties
 */
export type ArmorProperties = Message<"soulfire.v1.ArmorProperties"> & {
  /**
   * @generated from field: string equipment_slot = 1;
   */
  equipmentSlot: string;

  /**
   * @generated from field: int32 defense = 2;
   */
  defense: number;

  /**
   * @generated from field: float toughness = 3;
   */
  toughness: number;

  /**
   * @generated from field: float knockback_resistance = 4;
   */
  knockbackResistance: number;
};

/**
 * Describes the message soulfire.v1.ArmorProperties.
 * Use `create(ArmorPropertiesSchema)` to create a new message.
 */
export const ArmorPropertiesSchema: GenMessage<ArmorProperties> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 10);

/**
 * @generated from message soulfire.v1.PotionProperties
 */
export type PotionProperties = Message<"soulfire.v1.PotionProperties"> & {
  /**
   * @generated from field: optional string potion_id = 1;
   */
  potionId?: string | undefined;

  /**
   * @generated from field: repeated soulfire.v1.EffectSnapshot effects = 2;
   */
  effects: EffectSnapshot[];

  /**
   * @generated from field: optional int32 color = 3;
   */
  color?: number | undefined;
};

/**
 * Describes the message soulfire.v1.PotionProperties.
 * Use `create(PotionPropertiesSchema)` to create a new message.
 */
export const PotionPropertiesSchema: GenMessage<PotionProperties> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 11);

/**
 * Semantic item data. Large presentation assets are deliberately excluded.
 *
 * @generated from message soulfire.v1.ItemStackSnapshot
 */
export type ItemStackSnapshot = Message<"soulfire.v1.ItemStackSnapshot"> & {
  /**
   * @generated from field: string item_id = 1;
   */
  itemId: string;

  /**
   * @generated from field: int32 count = 2;
   */
  count: number;

  /**
   * @generated from field: int32 max_stack_size = 3;
   */
  maxStackSize: number;

  /**
   * @generated from field: int32 damage = 4;
   */
  damage: number;

  /**
   * @generated from field: int32 max_damage = 5;
   */
  maxDamage: number;

  /**
   * @generated from field: optional soulfire.v1.TextComponent custom_name = 6;
   */
  customName?: TextComponent | undefined;

  /**
   * @generated from field: repeated soulfire.v1.TextComponent lore = 7;
   */
  lore: TextComponent[];

  /**
   * @generated from field: repeated soulfire.v1.EnchantmentSnapshot enchantments = 8;
   */
  enchantments: EnchantmentSnapshot[];

  /**
   * @generated from field: optional soulfire.v1.FoodProperties food = 9;
   */
  food?: FoodProperties | undefined;

  /**
   * @generated from field: optional soulfire.v1.ToolProperties tool = 10;
   */
  tool?: ToolProperties | undefined;

  /**
   * @generated from field: optional soulfire.v1.ArmorProperties armor = 11;
   */
  armor?: ArmorProperties | undefined;

  /**
   * @generated from field: google.protobuf.Struct components = 12;
   */
  components?: JsonObject | undefined;

  /**
   * @generated from field: optional bytes custom_data_nbt = 13;
   */
  customDataNbt?: Uint8Array | undefined;

  /**
   * @generated from field: string fingerprint = 14;
   */
  fingerprint: string;

  /**
   * @generated from field: optional soulfire.v1.PotionProperties potion = 15;
   */
  potion?: PotionProperties | undefined;
};

/**
 * Describes the message soulfire.v1.ItemStackSnapshot.
 * Use `create(ItemStackSnapshotSchema)` to create a new message.
 */
export const ItemStackSnapshotSchema: GenMessage<ItemStackSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 12);

/**
 * Network IDs are scoped to a connection epoch and must not be cached alone.
 *
 * @generated from message soulfire.v1.EntityReference
 */
export type EntityReference = Message<"soulfire.v1.EntityReference"> & {
  /**
   * @generated from field: string connection_epoch = 1;
   */
  connectionEpoch: string;

  /**
   * @generated from field: int32 network_id = 2;
   */
  networkId: number;

  /**
   * @generated from field: optional string uuid = 3;
   */
  uuid?: string | undefined;
};

/**
 * Describes the message soulfire.v1.EntityReference.
 * Use `create(EntityReferenceSchema)` to create a new message.
 */
export const EntityReferenceSchema: GenMessage<EntityReference> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 13);

/**
 * @generated from message soulfire.v1.EntitySnapshot
 */
export type EntitySnapshot = Message<"soulfire.v1.EntitySnapshot"> & {
  /**
   * @generated from field: soulfire.v1.EntityReference reference = 1;
   */
  reference?: EntityReference | undefined;

  /**
   * @generated from field: string entity_type = 2;
   */
  entityType: string;

  /**
   * @generated from field: soulfire.v1.EntityCategory category = 3;
   */
  category: EntityCategory;

  /**
   * @generated from field: soulfire.v1.WorldPosition position = 4;
   */
  position?: WorldPosition | undefined;

  /**
   * @generated from field: soulfire.v1.Vec3 velocity = 5;
   */
  velocity?: Vec3 | undefined;

  /**
   * @generated from field: soulfire.v1.Rotation rotation = 6;
   */
  rotation?: Rotation | undefined;

  /**
   * @generated from field: soulfire.v1.BoundingBox bounding_box = 7;
   */
  boundingBox?: BoundingBox | undefined;

  /**
   * @generated from field: string pose = 8;
   */
  pose: string;

  /**
   * @generated from field: bool on_ground = 9;
   */
  onGround: boolean;

  /**
   * @generated from field: optional soulfire.v1.TextComponent display_name = 10;
   */
  displayName?: TextComponent | undefined;

  /**
   * @generated from field: optional string player_name = 11;
   */
  playerName?: string | undefined;

  /**
   * @generated from field: optional float health = 12;
   */
  health?: number | undefined;

  /**
   * @generated from field: optional float max_health = 13;
   */
  maxHealth?: number | undefined;

  /**
   * @generated from field: map<string, soulfire.v1.ItemStackSnapshot> equipment = 14;
   */
  equipment: { [key: string]: ItemStackSnapshot };

  /**
   * @generated from field: repeated soulfire.v1.EffectSnapshot effects = 15;
   */
  effects: EffectSnapshot[];

  /**
   * @generated from field: repeated soulfire.v1.AttributeSnapshot attributes = 16;
   */
  attributes: AttributeSnapshot[];

  /**
   * @generated from field: optional soulfire.v1.EntityReference vehicle = 17;
   */
  vehicle?: EntityReference | undefined;

  /**
   * @generated from field: repeated soulfire.v1.EntityReference passengers = 18;
   */
  passengers: EntityReference[];

  /**
   * @generated from field: optional soulfire.v1.EntityReference owner = 19;
   */
  owner?: EntityReference | undefined;

  /**
   * @generated from field: optional soulfire.v1.EntityReference target = 20;
   */
  target?: EntityReference | undefined;

  /**
   * @generated from field: optional soulfire.v1.ItemStackSnapshot item = 21;
   */
  item?: ItemStackSnapshot | undefined;

  /**
   * @generated from field: bool alive = 22;
   */
  alive: boolean;

  /**
   * @generated from field: google.protobuf.Struct metadata = 23;
   */
  metadata?: JsonObject | undefined;

  /**
   * @generated from field: optional int32 age_ticks = 24;
   */
  ageTicks?: number | undefined;

  /**
   * @generated from field: optional bool tamed = 25;
   */
  tamed?: boolean | undefined;
};

/**
 * Describes the message soulfire.v1.EntitySnapshot.
 * Use `create(EntitySnapshotSchema)` to create a new message.
 */
export const EntitySnapshotSchema: GenMessage<EntitySnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 14);

/**
 * @generated from message soulfire.v1.FluidSnapshot
 */
export type FluidSnapshot = Message<"soulfire.v1.FluidSnapshot"> & {
  /**
   * @generated from field: string fluid_id = 1;
   */
  fluidId: string;

  /**
   * @generated from field: bool source = 2;
   */
  source: boolean;

  /**
   * @generated from field: float height = 3;
   */
  height: number;
};

/**
 * Describes the message soulfire.v1.FluidSnapshot.
 * Use `create(FluidSnapshotSchema)` to create a new message.
 */
export const FluidSnapshotSchema: GenMessage<FluidSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 15);

/**
 * @generated from message soulfire.v1.VoxelShape
 */
export type VoxelShape = Message<"soulfire.v1.VoxelShape"> & {
  /**
   * @generated from field: repeated soulfire.v1.BoundingBox boxes = 1;
   */
  boxes: BoundingBox[];
};

/**
 * Describes the message soulfire.v1.VoxelShape.
 * Use `create(VoxelShapeSchema)` to create a new message.
 */
export const VoxelShapeSchema: GenMessage<VoxelShape> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 16);

/**
 * @generated from message soulfire.v1.BlockSnapshot
 */
export type BlockSnapshot = Message<"soulfire.v1.BlockSnapshot"> & {
  /**
   * @generated from field: soulfire.v1.BlockPosition position = 1;
   */
  position?: BlockPosition | undefined;

  /**
   * @generated from field: string block_id = 2;
   */
  blockId: string;

  /**
   * @generated from field: map<string, string> properties = 3;
   */
  properties: { [key: string]: string };

  /**
   * @generated from field: optional google.protobuf.Struct block_entity = 4;
   */
  blockEntity?: JsonObject | undefined;

  /**
   * @generated from field: optional string biome_id = 5;
   */
  biomeId?: string | undefined;

  /**
   * @generated from field: optional int32 sky_light = 6;
   */
  skyLight?: number | undefined;

  /**
   * @generated from field: optional int32 block_light = 7;
   */
  blockLight?: number | undefined;

  /**
   * @generated from field: float hardness = 8;
   */
  hardness: number;

  /**
   * @generated from field: bool diggable = 9;
   */
  diggable: boolean;

  /**
   * @generated from field: bool replaceable = 10;
   */
  replaceable: boolean;

  /**
   * @generated from field: bool solid = 11;
   */
  solid: boolean;

  /**
   * @generated from field: bool interactive = 12;
   */
  interactive: boolean;

  /**
   * @generated from field: repeated string effective_tool_tags = 13;
   */
  effectiveToolTags: string[];

  /**
   * @generated from field: optional soulfire.v1.FluidSnapshot fluid = 14;
   */
  fluid?: FluidSnapshot | undefined;

  /**
   * @generated from field: optional soulfire.v1.VoxelShape collision_shape = 15;
   */
  collisionShape?: VoxelShape | undefined;

  /**
   * @generated from field: optional soulfire.v1.VoxelShape interaction_shape = 16;
   */
  interactionShape?: VoxelShape | undefined;

  /**
   * @generated from field: uint64 chunk_revision = 17;
   */
  chunkRevision: bigint;
};

/**
 * Describes the message soulfire.v1.BlockSnapshot.
 * Use `create(BlockSnapshotSchema)` to create a new message.
 */
export const BlockSnapshotSchema: GenMessage<BlockSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 17);

/**
 * @generated from message soulfire.v1.PlayerAbilitiesSnapshot
 */
export type PlayerAbilitiesSnapshot = Message<"soulfire.v1.PlayerAbilitiesSnapshot"> & {
  /**
   * @generated from field: bool invulnerable = 1;
   */
  invulnerable: boolean;

  /**
   * @generated from field: bool flying = 2;
   */
  flying: boolean;

  /**
   * @generated from field: bool may_fly = 3;
   */
  mayFly: boolean;

  /**
   * @generated from field: bool instant_build = 4;
   */
  instantBuild: boolean;

  /**
   * @generated from field: float flying_speed = 5;
   */
  flyingSpeed: number;

  /**
   * @generated from field: float walking_speed = 6;
   */
  walkingSpeed: number;
};

/**
 * Describes the message soulfire.v1.PlayerAbilitiesSnapshot.
 * Use `create(PlayerAbilitiesSnapshotSchema)` to create a new message.
 */
export const PlayerAbilitiesSnapshotSchema: GenMessage<PlayerAbilitiesSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 18);

/**
 * @generated from message soulfire.v1.ExperienceSnapshot
 */
export type ExperienceSnapshot = Message<"soulfire.v1.ExperienceSnapshot"> & {
  /**
   * @generated from field: int32 level = 1;
   */
  level: number;

  /**
   * @generated from field: float progress = 2;
   */
  progress: number;

  /**
   * @generated from field: int32 total = 3;
   */
  total: number;
};

/**
 * Describes the message soulfire.v1.ExperienceSnapshot.
 * Use `create(ExperienceSnapshotSchema)` to create a new message.
 */
export const ExperienceSnapshotSchema: GenMessage<ExperienceSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 19);

/**
 * @generated from message soulfire.v1.PlayerSnapshot
 */
export type PlayerSnapshot = Message<"soulfire.v1.PlayerSnapshot"> & {
  /**
   * @generated from field: soulfire.v1.WorldPosition position = 1;
   */
  position?: WorldPosition | undefined;

  /**
   * @generated from field: soulfire.v1.Vec3 velocity = 2;
   */
  velocity?: Vec3 | undefined;

  /**
   * @generated from field: soulfire.v1.Rotation rotation = 3;
   */
  rotation?: Rotation | undefined;

  /**
   * @generated from field: bool on_ground = 4;
   */
  onGround: boolean;

  /**
   * @generated from field: string pose = 5;
   */
  pose: string;

  /**
   * @generated from field: float health = 6;
   */
  health: number;

  /**
   * @generated from field: float max_health = 7;
   */
  maxHealth: number;

  /**
   * @generated from field: int32 food = 8;
   */
  food: number;

  /**
   * @generated from field: float saturation = 9;
   */
  saturation: number;

  /**
   * @generated from field: float exhaustion = 10;
   */
  exhaustion: number;

  /**
   * @generated from field: int32 air = 11;
   */
  air: number;

  /**
   * @generated from field: int32 max_air = 12;
   */
  maxAir: number;

  /**
   * @generated from field: int32 fire_ticks = 13;
   */
  fireTicks: number;

  /**
   * @generated from field: int32 freezing_ticks = 14;
   */
  freezingTicks: number;

  /**
   * @generated from field: soulfire.v1.ExperienceSnapshot experience = 15;
   */
  experience?: ExperienceSnapshot | undefined;

  /**
   * @generated from field: soulfire.v1.GameMode game_mode = 16;
   */
  gameMode: GameMode;

  /**
   * @generated from field: soulfire.v1.PlayerAbilitiesSnapshot abilities = 17;
   */
  abilities?: PlayerAbilitiesSnapshot | undefined;

  /**
   * @generated from field: int32 selected_hotbar_slot = 18;
   */
  selectedHotbarSlot: number;

  /**
   * @generated from field: optional soulfire.v1.ItemStackSnapshot main_hand = 19;
   */
  mainHand?: ItemStackSnapshot | undefined;

  /**
   * @generated from field: optional soulfire.v1.ItemStackSnapshot off_hand = 20;
   */
  offHand?: ItemStackSnapshot | undefined;

  /**
   * @generated from field: map<string, soulfire.v1.ItemStackSnapshot> equipment = 21;
   */
  equipment: { [key: string]: ItemStackSnapshot };

  /**
   * @generated from field: repeated soulfire.v1.EffectSnapshot effects = 22;
   */
  effects: EffectSnapshot[];

  /**
   * @generated from field: repeated soulfire.v1.AttributeSnapshot attributes = 23;
   */
  attributes: AttributeSnapshot[];

  /**
   * @generated from field: bool sleeping = 24;
   */
  sleeping: boolean;

  /**
   * @generated from field: bool using_item = 25;
   */
  usingItem: boolean;

  /**
   * @generated from field: optional soulfire.v1.EntityReference vehicle = 26;
   */
  vehicle?: EntityReference | undefined;

  /**
   * @generated from field: optional soulfire.v1.BlockPosition spawn_point = 27;
   */
  spawnPoint?: BlockPosition | undefined;

  /**
   * @generated from field: bool dead = 28;
   */
  dead: boolean;

  /**
   * @generated from field: optional float last_damage = 29;
   */
  lastDamage?: number | undefined;

  /**
   * @generated from field: string connection_epoch = 30;
   */
  connectionEpoch: string;

  /**
   * @generated from field: uint64 revision = 31;
   */
  revision: bigint;
};

/**
 * Describes the message soulfire.v1.PlayerSnapshot.
 * Use `create(PlayerSnapshotSchema)` to create a new message.
 */
export const PlayerSnapshotSchema: GenMessage<PlayerSnapshot> = /*@__PURE__*/
  messageDesc(file_soulfire_domain, 20);

/**
 * @generated from enum soulfire.v1.EntityCategory
 */
export enum EntityCategory {
  /**
   * @generated from enum value: ENTITY_CATEGORY_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: ENTITY_CATEGORY_PLAYER = 1;
   */
  PLAYER = 1,

  /**
   * @generated from enum value: ENTITY_CATEGORY_HOSTILE = 2;
   */
  HOSTILE = 2,

  /**
   * @generated from enum value: ENTITY_CATEGORY_PASSIVE = 3;
   */
  PASSIVE = 3,

  /**
   * @generated from enum value: ENTITY_CATEGORY_PROJECTILE = 4;
   */
  PROJECTILE = 4,

  /**
   * @generated from enum value: ENTITY_CATEGORY_VEHICLE = 5;
   */
  VEHICLE = 5,

  /**
   * @generated from enum value: ENTITY_CATEGORY_DROPPED_ITEM = 6;
   */
  DROPPED_ITEM = 6,

  /**
   * @generated from enum value: ENTITY_CATEGORY_OTHER = 7;
   */
  OTHER = 7,
}

/**
 * Describes the enum soulfire.v1.EntityCategory.
 */
export const EntityCategorySchema: GenEnum<EntityCategory> = /*@__PURE__*/
  enumDesc(file_soulfire_domain, 0);
