class Attio::Attribute

def retrieve(id, **opts)

Override retrieve to handle object-scoped attributes
def retrieve(id, **opts)
  # Extract simple ID if it's a nested hash
  attribute_id = Util::IdExtractor.extract_for_resource(id, :attribute)
  validate_id!(attribute_id)
  # For attributes, we need the object context - check if it's in the nested ID
  if id.is_a?(Hash) && id["object_id"]
    object_id = id["object_id"]
    response = execute_request(:GET, "objects/#{object_id}/attributes/#{attribute_id}", {}, opts)
  else
    # Fall back to regular attributes endpoint
    response = execute_request(:GET, "#{resource_path}/#{attribute_id}", {}, opts)
  end
  new(response["data"] || response, opts)
end