class_docstr: Inference rule that checks for columns ending with `id`.
  
  We searched for words ending with "id" just to assess the chance of this resulting in a
  false positive. Our guess is most of those words would rarely, if ever, be used as column names.
  Therefore, not adding a mandatory "_" before "id" would benefit the product by matching names
  like "userid", despite the rare "squid", "mermaid" or "android" matches.
  
  See: https://www.thefreedictionary.com/words-that-end-in-id
  
  It will always produce ID.UNKNOWN signal with VERY_HIGH confidence.
class_docstr_tok: ["Inference","rule","that","checks","for","columns","ending","with","`","id","`",".","We","searched","for","words","ending","with","``","id","''","just","to","assess","the","chance","of","this","resulting","in","a","false","positive",".","Our","guess","is","most","of","those","words","would","rarely",",","if","ever",",","be","used","as","column","names",".","Therefore",",","not","adding","a","mandatory","``","_","''","before","``","id","''","would","benefit","the","product","by","matching","names","like","``","userid","''",",","despite","the","rare","``","squid","''",",","``","mermaid","''","or","``","android","''","matches",".","See",":","https",":","\/\/www.thefreedictionary.com\/words-that-end-in-id","It","will","always","produce","ID.UNKNOWN","signal","with","VERY_HIGH","confidence","."]
code: def match_column(self, props: ColumnProperties) -> bool:  # noqa: D
      return props.column.column_name.lower().endswith("id")
  
imports: from __future__ import annotations
  from typing import List
  from metricflow.inference.context.data_warehouse import ColumnProperties, DataWarehouseInferenceContext, InferenceColumnType
  from metricflow.inference.models import InferenceSignal, InferenceSignalConfidence, InferenceSignalType
  from metricflow.inference.rule.base import InferenceRule
  from metricflow.inference.rule.rules import ColumnMatcherRule, LowCardinalityRatioRule
label_desc: Use image node_id 1 for calling the AnyEntityByNameRule obj's underlying member method code with example usage: obj.match_column(props) and returns: props