anchor.diff:      | AttributeTypeCode.Customer  
       | AttributeTypeCode.Owner     -> TsType.String, SpecialType.EntityReference
           
  -    | AttributeTypeCode.Uniqueidentifier -> TsType.String, SpecialType.Guid
  -    | AttributeTypeCode.Decimal   -> 
  -      toSome typeConv a.AttributeType, SpecialType.Decimal
  -    | _ -> toSome typeConv a.AttributeType, SpecialType.Default
  +    | AttributeTypeCode.Uniqueidentifier 
  +                                  -> TsType.String, SpecialType.Guid
   
  -  let attr = 
  -    match a.IsValidForCreate.GetValueOrDefault(false) <> a.IsValidForUpdate.GetValueOrDefault(false) with
  -    | true -> Some a
  -    | false -> None
  +    | AttributeTypeCode.Decimal   -> toSome typeConv a.AttributeType, SpecialType.Decimal
  +    | _                           -> toSome typeConv a.AttributeType, SpecialType.Default
   
  -  if attr.IsSome then
  -    ()
   
     options, Some {
       XrmAttribute.schemaName = a.SchemaName
  
positive.code:     match a with
      | :? LookupAttributeMetadata as lam -> 
        lam.Targets
        |> Array.choose (fun k -> Map.tryFind k map ?|> snd)
        |> Some
      | _ -> None
  
    let vType, sType = 
      match aType with
      | AttributeTypeCode.Money     -> TsType.Number, SpecialType.Money
      | AttributeTypeCode.Picklist
      | AttributeTypeCode.State
      | AttributeTypeCode.Status    -> TsType.Custom options.Value.displayName, SpecialType.OptionSet
  
negative.code:     attrs = attr_vars
      rels = rel_vars
      opt_sets = opt_sets
      relatedEntities = rel_entities 
    }