# Hierarchy For All Packages

Package Hierarchies:

- commoble.exmachina.engine.api,
- commoble.exmachina.engine.api.content,
- commoble.exmachina.engine.internal,
- commoble.exmachina.engine.internal.circuit,
- commoble.exmachina.engine.internal.util

## Class Hierarchy

- java.lang.Object
  - commoble.exmachina.engine.internal.circuit.CircuitBuilder
  - commoble.exmachina.engine.internal.circuit.CircuitImpl (implements commoble.exmachina.engine.api.Circuit)
  - commoble.exmachina.engine.internal.util.CodecHelper
  - commoble.exmachina.engine.internal.circuit.ComponentBaker
  - com.mojang.serialization.CompressorHolder (implements com.mojang.serialization.Compressable)
    - com.mojang.serialization.MapCodec<A> (implements com.mojang.serialization.MapDecoder<A>, com.mojang.serialization.MapEncoder<A>)
      - com.mojang.serialization.codecs.OptionalFieldCodec<A>
        - commoble.exmachina.engine.internal.util.NullableFieldCodec<VALUE>
  - commoble.exmachina.engine.internal.util.ConfigHelper
  - commoble.exmachina.engine.internal.util.DirectionHelper
  - commoble.exmachina.engine.internal.ExMachinaEngine
  - commoble.exmachina.engine.api.ExMachinaRegistries
  - commoble.exmachina.engine.internal.Names
  - java.lang.Record
    - commoble.exmachina.engine.api.BlockComponent
    - commoble.exmachina.engine.api.content.BlockStateConnector (implements commoble.exmachina.engine.api.Connector)
    - commoble.exmachina.engine.api.content.BlockStateProperty (implements commoble.exmachina.engine.api.StaticProperty)
    - commoble.exmachina.engine.api.CircuitComponent
    - commoble.exmachina.engine.internal.CommonConfig
    - commoble.exmachina.engine.api.content.ConstantProperty (implements commoble.exmachina.engine.api.StaticProperty)
    - commoble.exmachina.engine.api.content.DirectionsConnector (implements commoble.exmachina.engine.api.Connector)
    - commoble.exmachina.engine.api.StateComponent
    - commoble.exmachina.engine.api.content.UnionConnector (implements commoble.exmachina.engine.api.Connector)
  - net.minecraft.world.level.saveddata.SavedData
    - commoble.exmachina.engine.internal.circuit.LevelCircuitManager (implements commoble.exmachina.engine.api.CircuitManager)
  - commoble.exmachina.engine.internal.util.StateReader

## Interface Hierarchy

- commoble.exmachina.engine.api.Circuit
- commoble.exmachina.engine.api.CircuitManager
- commoble.exmachina.engine.api.Connector
- commoble.exmachina.engine.api.Connector.BlockConnector
- commoble.exmachina.engine.api.Connector.StateConnector
- commoble.exmachina.engine.api.DynamicProperty
- commoble.exmachina.engine.api.StaticProperty
- commoble.exmachina.engine.api.StaticProperty.BakedStaticProperty

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - commoble.exmachina.engine.api.content.AllDirectionsConnector (implements commoble.exmachina.engine.api.Connector)
    - commoble.exmachina.engine.internal.circuit.EmptyCircuit (implements commoble.exmachina.engine.api.Circuit)
    - commoble.exmachina.engine.api.content.NoneConnector (implements commoble.exmachina.engine.api.Connector)
    - commoble.exmachina.engine.api.content.NoneDynamicProperty (implements commoble.exmachina.engine.api.DynamicProperty)