public override void InterpretAttributes(KeyValuePair <Vector2Int, TileAttributes> attributes)
    {
#if LOG_INTERPRETATION
        if (!attributes.Value.IsTileType(Attributes.TileType.STARTING_TILE))
        {
            Debug.LogWarning("[INTERPRETATION]: Attempted to interpret first tile attribute when first tile attribute was not present!");
            return;
        }
#endif
        Vector3 pos = GridMaintaner.GetGridPositionOf(attributes.Key);
        Instantiate(_firstTile, pos, Quaternion.identity);
        LogSuccess("first tile");
    }
    public override void InterpretAttributes(KeyValuePair <Vector2Int, TileAttributes> attributes)
    {
#if LOG_INTERPRETATION
        if (attributes.Value.GetTileType() < Attributes.TileType.POINT_OF_INTEREST)
        {
            Debug.LogWarning("[INTERPRETATION]: Attempted to interpret point of interest attibute when point of interest attribute was not present!");
            return;
        }
#endif

        Vector3 pos = GridMaintaner.GetGridPositionOf(attributes.Key);
        Instantiate(PointOfInterestGenerator.GetPointOfInterest((PointsOfInterest.POIType)attributes.Value.GetTileType()), pos, Quaternion.identity);
        LogSuccess("point of interest");
    }