anchor.diff:                    TwoSided = false }
               
               // fin
  -            (descriptor, heightMap)
  +            (descriptor, size, heightMap)
   
           // did not find albedo tile set
           | None -> failwith "Unable to find custom TmxLayer Image property; cannot create tactical map."
  
positive.code: [<RequireQualifiedAccess>]
  module Field =
  
      let CachedDescriptors = dictPlus<StaticModel AssetTag, Map<Vector2i, single>> HashIdentity.Structural []
  
      let private createFieldSurfaceDescriptorAndHeightMap tileMapWidth tileMapHeight (tileSets : TmxTileset array) (tileLayer : TmxLayer) (heightLayer : TmxLayer) =
  
          // make positions array
          let positions = Array.zeroCreate<Vector3> (tileMapWidth * tileMapHeight * 6)
  
          // initialize positions flat
          for i in 0 .. dec tileMapWidth do
              for j in 0 .. dec tileMapHeight do
                  let t = j * tileMapWidth + i
  
negative.code:                 let height =
                      match tileSetOpt with
                      | None -> 0.0f
                      | Some tileSet -> single (tile.Gid - tileSet.FirstGid) * heightScalar
                  let u = t * 6
                  let position = v3 (single i) height (single j) + offset
                  positions.[u] <- position
                  positions.[u+1] <- position + v3Right
                  positions.[u+2] <- position + v3Right + v3Forward
  