def METHOD_NAME(self: uml.Property) -> list[bool | None]:
    """Get navigability of an association end.
    If no association is related to the property, then unknown
    navigability is assumed.
    """
    assoc = self.association
    if not (assoc and self.opposite):
        return [None]  # assume unknown
    owner = self.opposite.type
    if (
        isinstance(owner, (uml.Class, uml.DataType, uml.Interface))
        and isinstance(self.type, (uml.Class, uml.DataType, uml.Interface))
        and (self in owner.ownedAttribute)
        or self in assoc.navigableOwnedEnd
    ):
        return [True]
    elif isinstance(assoc.ownedEnd, uml.ExtensionEnd):
        return [self is assoc.ownedEnd]
    elif assoc.ownedEnd is None or self in assoc.ownedEnd:
        return [None]
    else:
        return [False]