LibToffee Attributes Question

A few years ago Carlo added Attributes for IOS.
I use it now …and I have some question and small problems ( I attached simple testcase)
But step by step information for this small testcase.
I have simple attribute
type

SimpleDBAttribute = class(RemObjects.Elements.System.Attribute)
//name of property in direct class
property PropertyName : RemObjects.Elements.RTL.String;
//alias name of tag in JSON (can not be the same as PropertyName)
property Alias : RemObjects.Elements.RTL.String;
//Primary Key
property KeyField : RemObjects.Oxygene.System.Boolean;

end;

//simple class using Attributes
Dog = public class (NSObject)
public
[SimpleDBAttribute(PropertyName :=‘Name’, Alias := “Nazwa”, KeyField := true)]
property Name : RemObjects.Elements.RTL.String read write;
[SimpleDBAttribute(PropertyName :=‘Age’, Alias := “Lata”, KeyField := true)]
property Age : Integer read write;
end;

I use reflection ,attributes and annotations in other platforms.
I need attribute for my framework (it is working in ASP.NET core, WPF, Android) to serialize and deserialize data from my client to my service. I use JSON as protocol.
My JSON is generated in service using exactly Attribute and in client side I want to read it in the same way , but no always Property Name in class is equal tag in JSON (sometimes is alias)
In json I know type of object which should I init so I init it and set value from json to object property.
simple usage without details :
var vDog := new Dog;

//vi because I know I Have 2 property -> there is no function which represent GetAllAttributesForProperty
for vi : Integer := 0 to 1 do
  begin
    var vAttrs := GetAttributesForProperty(typeOf(Dog), vi, typeOf(SimpleDBAttribute)) ;
    //another problem vAttrs always return 2 the same positions
    var vattr := vAttrs[0] as SimpleDBAttribute;
    //for simplicity I want to set value for my created object using PropertyName but serching in 
  JSON,XML using Aias (GetValueUsingAliasFromJSON)
    if vattr.Alias ='Nazwa' then
       vDog.setValue( GetValueUsingALiasFromJSON(vattr.Alias)) forKey(vattr.PropertyName)
  end;

I have some questions and problems:
1.Why function GetAttributesForProperty always return 2 positions for index ??
2.Can I ask for function getting list of attributes for all property ( i know i can read in while GetAttributesForProperty and add to list - problem is for index position is twice)??
3.Can we get in Attribute name of property name from class (or we don’t have direct connection parsing attributes) ?? I don’t want to add PropertyName to my simple Attribute but read it from Remobjects.RTL.System.Attribute - is any chance to get it ??
TestCase
AttributesTest.zip (124.4 KB)
Best regards
Mateusz